pyqt书写简易计算器
时间: 2023-11-05 13:05:58 浏览: 127
使用pyqt5开发的一个简易计算器
使用PyQt5可以很方便地实现简易计算器的功能。以下是实现简易计算器的步骤:
1. 导入PyQt5模块和sys模块。
2. 创建一个QApplication对象。
3. 创建一个QWidget对象作为主窗口。
4. 创建一个QLineEdit对象用于显示计算结果。
5. 创建多个QPushButton对象作为数字和运算符按钮,并将它们添加到主窗口中。
6. 为每个按钮连接一个槽函数,用于处理按钮点击事件。
7. 在槽函数中,根据按钮的文本内容进行相应的计算,并将结果显示在QLineEdit对象中。
下面是一个简单的示例代码:
```
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QPushButton, QVBoxLayout
class Calculator(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.result = QLineEdit()
self.result.setReadOnly(True)
vbox = QVBoxLayout()
vbox.addWidget(self.result)
grid = QGridLayout()
self.buttons = {}
button_texts = ['7', '8', '9', '+', '4', '5', '6', '-', '1', '2', '3', '*', '0', '.', '=', '/']
positions = [(i, j) for i in range(4) for j in range(4)]
for position, text in zip(positions, button_texts):
button = QPushButton(text)
self.buttons[text] = button
grid.addWidget(button, *position)
vbox.addLayout(grid)
self.setLayout(vbox)
for text, button in self.buttons.items():
if text.isdigit() or text == '.':
button.clicked.connect(self.handle_digit)
elif text in ['+', '-', '*', '/']:
button.clicked.connect(self.handle_operator)
elif text == '=':
button.clicked.connect(self.handle_equal)
self.setWindowTitle('Calculator')
self.show()
def handle_digit(self):
button = self.sender()
digit = button.text()
self.result.setText(self.result.text() + digit)
def handle_operator(self):
button = self.sender()
operator = button.text()
self.result.setText(self.result.text() + ' ' + operator + ' ')
def handle_equal(self):
expression = self.result.text()
try:
result = eval(expression)
self.result.setText(str(result))
except:
self.result.setText('Error')
if __name__ == '__main__':
app = QApplication(sys.argv)
calc = Calculator()
sys.exit(app.exec_())
```
相关问题:
1. 如何在PyQt5中创建主窗口?
2. 如何在PyQt5中创建按钮并连接槽函数?
3. 如何在PyQt5中显示文本框?
阅读全文