使用 PyQt5 创建 计算器程序 附源码

 在这篇博客中,我们将使用Python的PyQt5库来创建一个简单的计算器应用。我们的计算器将有基本的加、减、乘、除功能。

1. 导入所需的模块

首先,我们需要导入我们将在代码中使用的所有模块:

from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QWidget, QGridLayout, QLineEdit
import sys

2. 创建主窗口

接下来,我们创建一个名为Calculator的类,该类继承自QMainWindow。在这个类中,我们设置窗口的标题和大小,并创建一个堆叠窗口部件(QWidget),该部件将允许我们在不同的界面之间切换。

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

        self.setWindowTitle("计算器")
        self.setGeometry(100, 100, 300, 300)

        self.widget = QWidget()
        self.setCentralWidget(self.widget)

3. 创建计算器界面

我们的计算器界面将包含一个显示结果的QLineEdit和一系列的QPushButton,代表数字0-9、小数点以及加、减、乘、除和等于操作。

        self.layout = QVBoxLayout()
        self.widget.setLayout(self.layout)

        self.display = QLineEdit()
        self.layout.addWidget(self.display)

        self.grid = QGridLayout()
        self.layout.addLayout(self.grid)

        buttons = [
            '7', '8', '9', '/',
            '4', '5', '6', '*',
            '1', '2', '3', '-',
            '0', '.', '=', '+',
        ]

4. 添加按钮和功能

我们使用一个循环来创建所有的按钮,并将它们添加到网格布局中。每个按钮都连接到一个函数,当按钮被点击时,这个函数会被调用。

        row = 0
        col = 0

        for button in buttons:
            if button == "=":
                btn = QPushButton(button)
                btn.clicked.connect(self.calculate_result)
                self.grid.addWidget(btn, row, col, 1, 2)
                col += 1
            else:
                btn = QPushButton(button)
                btn.clicked.connect(self.button_clicked)
                self.grid.addWidget(btn, row, col)

            col += 1
            if col > 3:
                col = 0
                row += 1

5. 实现按钮功能

我们需要实现两个函数:button_clickedcalculate_resultbutton_clicked函数会在数字和操作符按钮被点击时被调用,它会将按钮的文本添加到显示屏上。calculate_result函数会在等于按钮被点击时被调用,它会计算显示屏上的表达式,并显示结果。

    def button_clicked(self):
        button_text = self.sender().text()
        display_text = self.display.text()
        new_text = display_text + button_text
        self.display.setText(new_text)

    def calculate_result(self):
        display_text = self.display.text()
        try:
            result = eval(display_text)
            self.display.setText(str(result))
        except Exception as e:
            self.display.setText("错误")

6. 运行应用程序

最后,我们创建一个QApplication实例,创建一个Calculator实例,并显示主窗口。然后,我们进入应用程序的主循环,等待用户的交互。

if __name__ == "__main__":
    app = QApplication(sys.argv)
    calc = Calculator()
    calc.show()
    sys.exit(app.exec_())

效果图:

扩展

  1. 高级功能:添加更多的数学功能,如平方根、幂运算等。
  2. 历史记录:实现计算历史记录功能,显示之前的计算结果。
  3. 错误处理:改进错误处理机制,提供更详细的错误信息。
  4. 界面美化:使用 CSS 美化界面,使其更加美观。

相关类型扩展

  1. 其他计算器类型:可以尝试实现其他类型的计算器,如科学计算器、图形计算器等。
  2. 图形界面应用:学习如何使用 PyQt5 创建更多复杂的图形界面应用,如文本编辑器、记事本等。
  3. 移动应用开发:了解如何使用 Kivy 等框架,将计算器应用移植到移动设备上。

    爬虫项目推荐

    其他项目推荐

总结

  1. 用户界面:使用 PyQt5 创建用户界面,设置网格布局和按钮。
  2. 按钮功能:为每个按钮设置点击事件,处理数字和操作符的输入。
  3. 计算结果:实现基本的加、减、乘、除功能,并在显示屏上显示结果。

通过这个项目,你可以掌握 PyQt5 的基本使用方法,并了解如何创建一个简单但功能齐全的计算器应用。如果你有任何问题或建议,请在评论区留言。祝你编程愉快

欢迎在评论区留言。继续探索和学习,祝你在深度学习的旅程中取得更多的成果!🚀


希望这个博客对你有所帮助!如果你有任何问题需要进一步的指导,请随时提问。继续加油! 🚀

  • 18
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LIY若依

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值