使用PyQt5创建一个简单的计算器
发布时间:2023-12-24 23:29:48
计算器是一种简单的程序,用于执行基本的数学运算。在PyQt5中,我们可以使用QWidget来创建一个基本的计算器界面,并通过QPushButton将数字和运算符添加到界面上。
以下是一个创建简单计算器的例子:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QGridLayout, QPushButton, QLineEdit
class Calculator(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('简单计算器')
self.layout = QVBoxLayout()
self.setLayout(self.layout)
self.display = QLineEdit()
self.layout.addWidget(self.display)
self.buttons = [
'7', '8', '9', '/',
'4', '5', '6', '*',
'1', '2', '3', '-',
'0', '.', '=', '+'
]
self.grid = QGridLayout()
self.layout.addLayout(self.grid)
self.row = 0
self.col = 0
for button in self.buttons:
self.add_button(button)
def add_button(self, button_text):
self.button = QPushButton(button_text)
self.button.clicked.connect(self.button_clicked)
self.grid.addWidget(self.button, self.row, self.col)
self.col += 1
if self.col > 3:
self.col = 0
self.row += 1
def button_clicked(self):
clicked_button = self.sender()
clicked_text = clicked_button.text()
if clicked_text == '=':
try:
result = eval(self.display.text())
self.display.setText(str(result))
except Exception as e:
self.display.setText('Error')
else:
self.display.setText(self.display.text() + clicked_text)
if __name__ == '__main__':
app = QApplication(sys.argv)
calculator = Calculator()
calculator.show()
sys.exit(app.exec_())
在这个例子中,我们首先创建了一个继承自QWidget的Calculator类。在构造函数中,我们设置了窗口的标题,并创建了一个垂直布局。
然后,我们创建了一个QLineEdit对象,用于显示计算结果和输入的表达式,并将其添加到布局中。接下来,我们创建了一个包含数字和运算符的按钮序列的列表。然后,我们创建了一个QGridLayout,将按钮添加到布局中,并使用addLayout方法将网格布局添加到垂直布局中。
在add_button方法中,我们创建了一个QPushButton对象,并为其clicked信号连接了一个slot函数button_clicked。然后,我们将按钮添加到网格布局中,并根据需要更新行和列的值。
在button_clicked方法中,我们获取到点击按钮的文本,并根据按钮的不同情况执行相应的操作。如果点击的按钮是“=”,我们尝试计算输入的表达式,然后在QLineEdit中显示结果。如果其他按钮被点击,我们将其文本附加到QLineEdit中。
最后,我们创建一个QApplication对象,并将Calculator窗口显示出来。
这样,一个简单的计算器就创建完成了。你可以根据需要扩展此计算器并添加更多功能,例如添加清除按钮、添加括号等。
运行此程序后,将显示一个简单的计算器界面,用户可以在QLineEdit中输入表达式,并点击按钮进行计算。计算结果将显示在QLineEdit中。
