python库pyQt实现一个计算器

2024-05-02 11:44 python库pyQt实现一个计算器已关闭评论

创建一个简单的计算器应用是一个很好的实践项目,可以用来学习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元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章

来源:每日教程每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://www.teachcourse.cn/3422.html ,谢谢支持!

资源分享

分类:python 标签:, ,
Python内置关键字详细用法(1) Python内置关键字详细用法(1)
如何选择最佳的避孕方式? 如何选择最佳的避孕方式?
mysql重新启动失败 mysql重新启动失败
浅谈final关键字 浅谈final关键字

评论已关闭!