(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`实例并运行应用。
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QLineEdit, QPushButton, QGridLayout, QWidget
class Calculator(QMainWindow):
def __init__(self):
super().__init__()
# 初始化界面
self.initUI()
def initUI(self):
# 设置窗口标题和大小
self.setWindowTitle('简易计算器')
self.setGeometry(300, 300, 300, 300)
# 创建显示结果的文本框
self.result_display = QLineEdit(self)
self.result_display.setReadOnly(True) # 设置为只读
self.result_display.move(10, 10)
self.result_display.resize(280, 40)
# 创建按钮并设置信号槽
self.create_buttons()
# 显示窗口
self.show()
def create_buttons(self):
# 创建数字按钮
self.num_buttons = []
for i in range(10):
button = QPushButton(str(i), self)
button.clicked.connect(self.on_number_click)
self.num_buttons.append(button)
# 创建运算符按钮
self.add_button = QPushButton('+', self)
self.add_button.clicked.connect(self.on_operat服务器托管网or_click)
self.subtract_button = QPushButton('-', self)
self.subtract_button.clicked.connect(self.on_operator_click)
self.multiply_button = QPushButton('*', self)
self.multiply_button.clicked.connect(self.on_operator_click)
self.divide_button = QPushButton('/', self)
self.divide_button.clicked.connect(self.on_operator_click)
# 创建清除按钮
self.clear_button = QPushButton('C', self)
self.clea服务器托管网r_button.clicked.connect(self.on_clear_click)
# 创建等号按钮
self.equal_button = QPushButton('=', self)
self.equal_button.clicked.connect(self.on_equal_click)
# 使用网格布局排列按钮
grid = QGridLayout()
grid.setSpacing(5)
positions = [(i, j) for i in range(1, 5) for j in range(4)]
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]):
grid.addWidget(button, *pos)
central_widget = QWidget(self)
central_widget.setLayout(grid)
central_widget.move(10, 60)
central_widget.resize(280, 230)
def on_number_click(self):
# 数字按钮点击事件处理
button = self.sender()
self.result_display.setText(self.result_display.text() + button.text())
def on_operator_click(self):
# 运算符按钮点击事件处理
button = self.sender()
self.result_display.setText(self.result_display.text() + ' ' + button.text() + ' ')
def on_clear_click(self):
# 清除按钮点击事件处理
self.result_display.clear()
def on_equal_click(self):
# 等号按钮点击事件处理
try:
result = eval(self.result_display.text())
self.result_display.setText(str(result))
except:
self.result_display.setText('错误')
if __name__ == '__main__':
app = QApplication(sys.argv)
calculator = Calculator()
sys.exit(app.exec_())
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
目录 一、前言 二、什么是对象编程 1、类和对象 2、封装 3、继承 4、多态 三、C#中的对象编程 1、类与对象 2、封装 3、继承 4、多态 5、接口 6、异常处理 四、最佳实践 1、良好的命名和文档 2、封装原理 3、继承的谨慎使用 4、多态性的利用 5…