欢迎访问宙启技术站
智能推送

使用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中。