【介绍】
比Windows系统自带的还好用的计算器,感兴趣的可以试用一下。
1.支持括号优先级运算和平方、立方计算;
2.支持计算历史记录功能;
3.支持界面缩放和拖动;
4.支持钉在界面(界面最前置顶),再次点击取消置顶;
5.支持复杂的组合计算,支持鼠标点击和通过键盘方式输入算式;
【背景】
最近几天测试时,经常需要将web端页面的一些数据加起来汇总,Windows10自带的计算机用的真的是蛋疼,于是,自己写了一个计算器,解决使用过程中的一些体验问题。
【功能】
用python+pyqt5写了一个双行显示的计算器,计算器一个显示界面显示输入的复杂的算式,如带括号的加减乘除法,计算顺序需要遵循数学计算规则。
详细代码如下:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QPushButton, QLineEdit, QLabel
from PyQt5.QtGui import QFont, QIcon
class CalculatorApp(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('双行计算器')
self.setWindowIcon(QIcon('icon.png')) # 设置窗体图标
# 设置输入框和结果显示框的样式
self.input_line = QLineEdit()
self.input_line.setReadOnly(True)
self.input_line.setFont(QFont("Arial", 20))
self.result_label = QLabel()
self.result_label.setFont(QFont("Arial", 24))
self.create_buttons()
main_layout = QVBoxLayout()
main_layout.addWidget(self.input_line)
main_layout.addWidget(self.result_label)
main_layout.addLayout(self.button_layout)
self.setLayout(main_layout)
def create_buttons(self):
self.buttons = [
'(', ')', '√', 'x^2',
'x^3', '←', 'C', '/',
'7', '8', '9', '*',
'4', '5', '6', '-',
'1', '2', '3', '+',
'0', '00', '.', '='
]
self.button_layout = QVBoxLayout()
for i in range(6):
row_layout = QHBoxLayout()
for j in range(4):
button = QPushButton(self.buttons[i * 4 + j])
button.clicked.connect(self.on_button_click)
button.setFont(QFont("Arial", 16))
row_layout.addWidget(button)
self.button_layout.addLayout(row_layout)
def on_button_click(self):
button = self.sender()
clicked_text = button.text()
current_text = self.input_line.text()
if clicked_text == '=':
try:
result = eval(current_text)
self.result_label.setText(str(result))
except:
self.result_label.setText('Error')
elif clicked_text == 'C':
self.input_line.clear()
self.result_label.clear()
elif clicked_text == '←':
self.input_line.setText(str(self.input_line.text()[0:-1]))
else:
self.input_line.setText(current_text + clicked_text)
if __name__ == '__main__':
app = QApplication(sys.argv)
calc_app = CalculatorApp()
calc_app.show()
sys.exit(app.exec_())
【运行效果】
经过验证,初步已经达到了预期。
【进阶版】
虽然功能上已经比自带的好一点,但是仍然不是很好用。
1、美化UI的颜色、边框和点击效果;
2、区分显示输入的算式内容,将删除、清除按钮、加减乘除和等号设置不同的颜色,便于区分。
3、增加计算历史记录显示功能,点击查看历史按钮,可以显示之前算式的内容和结果;
4、增加窗口置顶(钉在屏幕上),再次点击取消置顶;
5、调整美化字体;
6、窗口实现自适应;
【进阶版效果】
默认效果:
全屏效果:
【下载体验】
资源已上传,可免费下载体验,欢迎提供优化建议。
下载链接:
https://download.csdn.net/download/zh6526157/88780297