下面是PyQt5计算器的使用攻略,包括安装步骤、代码解析、使用示例等内容:
安装PyQt5
要使用PyQt5,需要首先安装它。在命令行中输入以下命令即可:
pip install PyQt5
代码解析
代码实现了一个计算器,首先是界面布局,其中包含一个文本框和若干个按钮。计算器只支持整数计算。然后是事件处理,当点击某个按钮时,会在文本框中显示相应的数字或运算符,当点击“=”时,会根据当前文本框中的表达式计算结果,并在文本框中显示。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QVBoxLayout
class Calculator(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.label = QLabel('0')
button0 = QPushButton('0', self)
button1 = QPushButton('1', self)
button2 = QPushButton('2', self)
button3 = QPushButton('3', self)
button4 = QPushButton('4', self)
button5 = QPushButton('5', self)
button6 = QPushButton('6', self)
button7 = QPushButton('7', self)
button8 = QPushButton('8', self)
button9 = QPushButton('9', self)
button_plus = QPushButton('+', self)
button_minus = QPushButton('-', self)
button_mul = QPushButton('*', self)
button_div = QPushButton('/', self)
button_clear = QPushButton('C', self)
button_equal = QPushButton('=', self)
vbox = QVBoxLayout()
vbox.addWidget(self.label)
vbox.addWidget(button1)
vbox.addWidget(button2)
vbox.addWidget(button3)
vbox.addWidget(button4)
vbox.addWidget(button5)
vbox.addWidget(button6)
vbox.addWidget(button7)
vbox.addWidget(button8)
vbox.addWidget(button9)
vbox.addWidget(button0)
vbox.addWidget(button_plus)
vbox.addWidget(button_minus)
vbox.addWidget(button_mul)
vbox.addWidget(button_div)
vbox.addWidget(button_clear)
vbox.addWidget(button_equal)
self.setLayout(vbox)
button0.clicked.connect(lambda:self.button_click('0'))
button1.clicked.connect(lambda:self.button_click('1'))
button2.clicked.connect(lambda:self.button_click('2'))
button3.clicked.connect(lambda:self.button_click('3'))
button4.clicked.connect(lambda:self.button_click('4'))
button5.clicked.connect(lambda:self.button_click('5'))
button6.clicked.connect(lambda:self.button_click('6'))
button7.clicked.connect(lambda:self.button_click('7'))
button8.clicked.connect(lambda:self.button_click('8'))
button9.clicked.connect(lambda:self.button_click('9'))
button_plus.clicked.connect(lambda:self.button_click('+'))
button_minus.clicked.connect(lambda:self.button_click('-'))
button_mul.clicked.connect(lambda:self.button_click('*'))
button_div.clicked.connect(lambda:self.button_click('/'))
button_clear.clicked.connect(self.clear)
button_equal.clicked.connect(self.calculate)
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Calculator')
self.show()
def button_click(self, digit):
current_text = self.label.text()
self.label.setText(current_text + digit)
def clear(self):
self.label.setText('0')
def calculate(self):
expression = self.label.text()
try:
result = eval(expression)
except:
self.label.setText('Error')
return
self.label.setText(str(result))
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Calculator()
sys.exit(app.exec_())
使用示例
在命令行中运行上述代码,一个计算器应用程序将会启动。用户可以在文本框中输入数字和运算符,点击等号求值,点击清除按钮清空文本框。
下面展示两个使用示例:
-
输入表达式“1+2*3-4”,点击等号,结果为“3”。
-
输入表达式“1/0”,点击等号,结果为“Error”,提示除数不能为0。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 – 计算你活了多少秒的计算器 - Python技术站