创建一个简单的计算器应用是一个很好的实践项目,可以用来学习PyQt5的基本概念,包括界面设计、信号与槽机制以及基本的数学运算。下面是一个基础的计算器实现示例:
1. 设计界面
我们可以使用Qt Designer来设计界面,或者直接用代码创建。这里提供一个直接用代码创建的简单示例。
2. 实现代码
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QWidget, QLabel
from PyQt5.QtCore import Qt
class Calculator(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('简易计算器')
self.setGeometry(100, 100, 300, 400)
self.centralWidget = QWidget()
self.setCentralWidget(self.centralWidget)
self.display = QLabel("0", self.centralWidget)
self.display.setAlignment(Qt.AlignRight)
self.display.setStyleSheet("border: 1px solid black; padding: 5px;")
self.layout = QVBoxLayout()
self.centralWidget.setLayout(self.layout)
self.layout.addWidget(self.display)
buttons = [
'7', '8', '9', '/',
'4', '5', '6', '*',
'1', '2', '3', '-',
'0', '.', '=', '+',
'C'
]
row = 1
col = 0
for btn_text in buttons:
button = QPushButton(btn_text)
button.clicked.connect(lambda checked, text=btn_text: self.buttonClicked(text))
if btn_text == '=':
button.setStyleSheet("background-color: #ddd;") # 可选:为等号按钮设置样式
self.layout.addWidget(button, row, col)
col += 1
if col > 3:
col = 0
row += 1
def buttonClicked(self, text):
if text == 'C':
self.display.setText("0")
elif text == '=':
try:
result = str(eval(self.display.text()))
self.display.setText(result)
except:
self.display.setText("错误")
else:
current_text = self.display.text()
if current_text == "0":
self.display.setText(text)
else:
self.display.setText(current_text + text)
if __name__ == '__main__':
app = QApplication([])
calc = Calculator()
calc.show()
app.exec_()
这个例子创建了一个简单的计算器,包含数字键0-9、加减乘除运算符、等号、清除键(C),以及小数点。用户可以通过点击按钮输入数字和运算符,按下等号键执行计算,按下清除键清空屏幕。计算器使用eval
函数来执行字符串表达式的计算,注意这在处理用户输入时可能存在安全风险,在实际应用中应考虑更安全的解析方法。
当前文章价值4.21元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)
评论已关闭!