通过PyQt5使用designer.exe设计UI,完成简易计算器的基本功能。
时间: 2023-11-27 21:53:25 浏览: 82
好的,以下是简易计算器的基本功能实现步骤:
1. 使用designer.exe设计UI界面,添加所需的控件,如QLineEdit(用于显示计算结果)、QPushButton(用于输入数字和运算符)等。
2. 在设计好的UI界面中,双击每个QPushButton控件,打开槽函数编辑器,连接相应的槽函数,如数字按钮连接数字输入槽函数、运算符按钮连接运算槽函数等。
3. 编写数字输入槽函数,将输入的数字添加到QLineEdit控件中;编写运算槽函数,根据输入的运算符进行相应的计算,并将计算结果显示到QLineEdit控件中。
4. 最后在主程序中加载设计好的UI界面,启动应用程序,即可实现简易计算器的基本功能。
以下是示例代码,你可以参考一下:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QLineEdit, QPushButton
from PyQt5 import uic
class Calculator(QMainWindow):
def __init__(self):
super(Calculator, self).__init__()
uic.loadUi("calculator.ui", self) # 加载UI文件
self.result = 0
self.num1 = None
self.num2 = None
self.op = None
# 连接数字输入槽函数
self.pushButton_0.clicked.connect(lambda: self.on_num_button_clicked(0))
self.pushButton_1.clicked.connect(lambda: self.on_num_button_clicked(1))
self.pushButton_2.clicked.connect(lambda: self.on_num_button_clicked(2))
self.pushButton_3.clicked.connect(lambda: self.on_num_button_clicked(3))
self.pushButton_4.clicked.connect(lambda: self.on_num_button_clicked(4))
self.pushButton_5.clicked.connect(lambda: self.on_num_button_clicked(5))
self.pushButton_6.clicked.connect(lambda: self.on_num_button_clicked(6))
self.pushButton_7.clicked.connect(lambda: self.on_num_button_clicked(7))
self.pushButton_8.clicked.connect(lambda: self.on_num_button_clicked(8))
self.pushButton_9.clicked.connect(lambda: self.on_num_button_clicked(9))
# 连接运算槽函数
self.pushButton_add.clicked.connect(lambda: self.on_op_button_clicked("+"))
self.pushButton_sub.clicked.connect(lambda: self.on_op_button_clicked("-"))
self.pushButton_mul.clicked.connect(lambda: self.on_op_button_clicked("*"))
self.pushButton_div.clicked.connect(lambda: self.on_op_button_clicked("/"))
self.pushButton_eq.clicked.connect(self.on_eq_button_clicked)
self.pushButton_clear.clicked.connect(self.on_clear_button_clicked)
def on_num_button_clicked(self, num):
if self.op is None:
if self.num1 is None:
self.num1 = str(num)
else:
self.num1 += str(num)
self.lineEdit.setText(self.num1)
else:
if self.num2 is None:
self.num2 = str(num)
else:
self.num2 += str(num)
self.lineEdit.setText(self.num2)
def on_op_button_clicked(self, op):
self.op = op
def on_eq_button_clicked(self):
if self.num1 is not None and self.num2 is not None:
num1 = float(self.num1)
num2 = float(self.num2)
if self.op == "+":
self.result = num1 + num2
elif self.op == "-":
self.result = num1 - num2
elif self.op == "*":
self.result = num1 * num2
elif self.op == "/":
if num2 == 0:
self.result = "Error"
else:
self.result = num1 / num2
self.lineEdit.setText(str(self.result))
def on_clear_button_clicked(self):
self.result = 0
self.num1 = None
self.num2 = None
self.op = None
self.lineEdit.setText("0")
if __name__ == "__main__":
app = QApplication([])
calculator = Calculator()
calculator.show()
app.exec_()
```
在上面的代码中,我们通过`uic.loadUi()`方法加载了设计好的UI文件`calculator.ui`,然后连接了数字输入槽函数`on_num_button_clicked()`、运算槽函数`on_op_button_clicked()`和等号槽函数`on_eq_button_clicked()`,以及清除槽函数`on_clear_button_clicked()`。在数字输入槽函数中,我们通过判断当前输入的数字是属于第一个操作数还是第二个操作数,将其显示在QLineEdit控件中;在运算槽函数中,我们记录了当前选择的运算符,并在等号槽函数中进行相应的计算;在清除槽函数中,我们将所有变量恢复到初始状态,并将QLineEdit控件中的文本设置为"0"。
最后,我们通过`app.exec_()`方法启动应用程序,即可看到简易计算器的UI界面。
阅读全文