使用python写一个比Windows系统自带浏览器更好用的计算器

本文介绍了作者用Python和PyQt5开发的一款双行显示计算器,具有括号优先级运算、历史记录、界面定制等功能,以解决Web端数据处理中的不便,同时提到进阶版本的改进点和下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【介绍】

比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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

《代码爱好者》

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

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

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

打赏作者

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

抵扣说明:

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

余额充值