📜  在Python中使用 PyQt5 构建计算器(1)

📅  最后修改于: 2023-12-03 14:51:19.719000             🧑  作者: Mango

在Python中使用 PyQt5 构建计算器

如果你想使用 Python 构建一个简单易用的计算器,那么使用 PyQt5 库是一个不错的选择。PyQt5 是一个灵活且功能强大的框架,它可以帮助你快速构建图形界面应用程序。

PyQ5 的安装

在使用 PyQt5 库之前,你需要先将它安装在你的计算机上。你可以使用 pip 工具来安装 PyQt5,操作步骤如下:

pip3 install pyqt5

或者你也可以通过以下方式安装:

pip3 install -r requirements.txt

requirements.txt 中包含了所有需要的库。

开始构建

在使用 PyQt5 构建计算器之前,你需要了解一些 GUI 编程的基础知识。GUI 编程是一项高级技术,需要你具备一定的编程经验。在这里,我们假设你已经掌握了 Python 编程语言和面向对象编程的基础知识。

首先,我们需要导入 QWidgets、QGridLayout、QPushButton、QLineEdit 和 QApplication 等模块:

from PyQt5.QtWidgets import QWidget, QGridLayout, QPushButton, QLineEdit, QApplication

接着,我们可以创建一个名为 Calculator 的类,并在 init() 方法中初始化一个 QWidget。通过 QGridLayout 布局,我们可以将按钮和文本框等部件添加到 QWidget 上。

class Calculator(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        # 创建一个网格对象,并为 QWidget 对象设置布局
        grid = QGridLayout()
        self.setLayout(grid)

        # 创建文本框对象
        self.edit = QLineEdit()
        grid.addWidget(self.edit, 0, 0, 1, 5)

        # 定义添加按钮函数
        def addButton(name, row, column):
            button = QPushButton(name)
            button.clicked.connect(self.buttonClicked)
            grid.addWidget(button, row, column)

        # 创建数字和操作符按钮
        addButton('1', 1, 0)
        addButton('2', 1, 1)
        addButton('3', 1, 2)
        addButton('+', 1, 3)
        addButton('-', 2, 3)

        # ... 添加更多按钮

在 addButton() 函数中,我们定义了如何创建一个按钮,并将其添加到网格布局中。该函数还将按钮点击的事件与 buttonClicked() 方法关联起来。

接着,我们需要实现 buttonClicked() 方法。在这个方法中,我们会获取当前文本框中的值,并将其与按钮的值进行运算。计算结果将显示在文本框中。

def buttonClicked(self):
    button = self.sender()
    digit = button.text()
    if digit in ['+', '-', '*', '/']:
        self.edit.setText(self.edit.text() + ' ' + digit + ' ')
    elif digit == '=':
        self.edit.setText(str(eval(self.edit.text())))
    elif digit == 'C':
        self.edit.setText('')
    else:
        self.edit.setText(self.edit.text() + digit)

在上面的代码中,我们首先获取了当前被点击的按钮,然后从按钮上获取它的文本值。如果按钮是数字或小数点,我们将它们添加到文本框的末尾。如果是操作符,在它前后添加空格。如果按钮是等号,我们将文本框中的内容传给 eval() 函数进行计算,并将计算结果显示在文本框中。如果是清除按钮,我们将文本框清空。

最后,我们创建应用程序对象,并将 Calculator 实例作为主窗口显示。

if __name__ == '__main__':
    import sys

    app = QApplication(sys.argv)
    calculator = Calculator()
    calculator.show()

    sys.exit(app.exec_())

这个计算器虽然功能简单,但它展示了如何使用 PyQt5 构建图形化应用程序。你可以根据自己的需要进行扩展。我们建议你尝试一下,熟悉一下 GUI 编程。