• 图形界面四则运算计算器(Python+PyQt5)


    (1) 导入所需的库和模块。
    (2) 创建一个名为`Calculator`的类,继承自`QMainWindow`。
    (3) 在`Calculator`类的`__init__`方法中,调用`initUI`方法初始化界面。
    (4) 在`initUI`方法中,设置窗口标题和大小,创建显示结果的文本框,并调用`create_buttons`方法创建按钮。
    (5) 在`create_buttons`方法中,创建数字按钮、运算符按钮、清除按钮和等号按钮,并将它们添加到网格布局中。
    (6) 为每个按钮设置信号槽,以便在点击按钮时执行相应的操作。
    (7) 在`on_number_click`、`on_operator_click`、`on_clear_click`和`on_equal_click`方法中,分别处理数字按钮、运算符按钮、清除按钮和等号按钮的点击事件。
    (8) 在主程序中,创建`Calculator`实例并运行应用。

    1. import sys
    2. from PyQt5.QtWidgets import QApplication, QMainWindow, QLineEdit, QPushButton, QGridLayout, QWidget
    3. class Calculator(QMainWindow):
    4. def __init__(self):
    5. super().__init__()
    6. # 初始化界面
    7. self.initUI()
    8. def initUI(self):
    9. # 设置窗口标题和大小
    10. self.setWindowTitle('简易计算器')
    11. self.setGeometry(300, 300, 300, 300)
    12. # 创建显示结果的文本框
    13. self.result_display = QLineEdit(self)
    14. self.result_display.setReadOnly(True) # 设置为只读
    15. self.result_display.move(10, 10)
    16. self.result_display.resize(280, 40)
    17. # 创建按钮并设置信号槽
    18. self.create_buttons()
    19. # 显示窗口
    20. self.show()
    21. def create_buttons(self):
    22. # 创建数字按钮
    23. self.num_buttons = []
    24. for i in range(10):
    25. button = QPushButton(str(i), self)
    26. button.clicked.connect(self.on_number_click)
    27. self.num_buttons.append(button)
    28. # 创建运算符按钮
    29. self.add_button = QPushButton('+', self)
    30. self.add_button.clicked.connect(self.on_operator_click)
    31. self.subtract_button = QPushButton('-', self)
    32. self.subtract_button.clicked.connect(self.on_operator_click)
    33. self.multiply_button = QPushButton('*', self)
    34. self.multiply_button.clicked.connect(self.on_operator_click)
    35. self.divide_button = QPushButton('/', self)
    36. self.divide_button.clicked.connect(self.on_operator_click)
    37. # 创建清除按钮
    38. self.clear_button = QPushButton('C', self)
    39. self.clear_button.clicked.connect(self.on_clear_click)
    40. # 创建等号按钮
    41. self.equal_button = QPushButton('=', self)
    42. self.equal_button.clicked.connect(self.on_equal_click)
    43. # 使用网格布局排列按钮
    44. grid = QGridLayout()
    45. grid.setSpacing(5)
    46. positions = [(i, j) for i in range(1, 5) for j in range(4)]
    47. for pos, button in zip(positions, self.num_buttons[1:] + [self.num_buttons[0], self.add_button, self.subtract_button, self.multiply_button, self.divide_button, self.clear_button, self.equal_button]):
    48. grid.addWidget(button, *pos)
    49. central_widget = QWidget(self)
    50. central_widget.setLayout(grid)
    51. central_widget.move(10, 60)
    52. central_widget.resize(280, 230)
    53. def on_number_click(self):
    54. # 数字按钮点击事件处理
    55. button = self.sender()
    56. self.result_display.setText(self.result_display.text() + button.text())
    57. def on_operator_click(self):
    58. # 运算符按钮点击事件处理
    59. button = self.sender()
    60. self.result_display.setText(self.result_display.text() + ' ' + button.text() + ' ')
    61. def on_clear_click(self):
    62. # 清除按钮点击事件处理
    63. self.result_display.clear()
    64. def on_equal_click(self):
    65. # 等号按钮点击事件处理
    66. try:
    67. result = eval(self.result_display.text())
    68. self.result_display.setText(str(result))
    69. except:
    70. self.result_display.setText('错误')
    71. if __name__ == '__main__':
    72. app = QApplication(sys.argv)
    73. calculator = Calculator()
    74. sys.exit(app.exec_())

  • 相关阅读:
    [附源码]计算机毕业设计JAVA8号体育用品销售及转卖系统
    28个团队建设游戏
    linux 上安装tomcat ,并将tomcat注册为服务
    《HTML+CSS+JavaScript》之第11章 CSS简介
    JDK1.5 新特性【反射】
    【Java课堂】接口详解
    订单正逆向流程
    Go语言函数和包介绍
    Spring进阶(二):AOP
    【Java实验五】继承与多态
  • 原文地址:https://blog.csdn.net/greatau/article/details/133825547