基于PyQt5的简易计算器

基于PyQt5的简易计算器之二

提示:基于PyQt5的简易计算器之一为环境搭建
基于PyQt5的简易计算器之二为Qt Designer使用

一、Qt Designer 界面

打开Designer .exe,新建文件之后,将按键和显示屏拖入窗口,采用布局中对上述按键进行排列,位置选定好之后,保存。
如下图所示。

请添加图片描述

按键名称需要修改并记住,为后期在pycharm中使用,如下图所示。

请添加图片描述

以上Designer设计的界面将会保存在一个.ui文件中

二、ui文件转化为py文件

为将以上界面用于python中,以下采用PyUic.exe转换ui文件为py文件。

转换过程如图所示:

请添加图片描述
转换成功将会出现同样名称,但是后缀名为.py的文件。

三、打开转换后的py文件。

打开转换后的py文件之后,可以看出生成了一个类,该类的名称可以自己修改,也可以不修改。
将类的名称记住,后期在主文件中会引用。
转换后的文件如下所示
在这里插入图片描述

1.ui文件代码

免费下载
已将CalcuInterface.ui 上传,大家可以免费下载

2.转换后的py文件代码

代码如下(示例):

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'CalcuInterface.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_widget(object):
    def setupUi(self, widget):
        widget.setObjectName("widget")
        widget.resize(369, 253)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(widget.sizePolicy().hasHeightForWidth())
        widget.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Times New Roman")
        font.setPointSize(12)
        widget.setFont(font)
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(widget)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.display = QtWidgets.QLineEdit(widget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.display.sizePolicy().hasHeightForWidth())
        self.display.setSizePolicy(sizePolicy)
        self.display.setMinimumSize(QtCore.QSize(0, 0))
        self.display.setSizeIncrement(QtCore.QSize(0, 0))
        self.display.setBaseSize(QtCore.QSize(62, 1))
        self.display.setCursor(QtGui.QCursor(QtCore
在使用PyQt5设计一个简易计算器的过程中,通常会遵循以下几个步骤: 1. **导入库**:首先需要导入所需的PyQt5模块,如`QtWidgets`用于窗口和控件,以及`uic`用于读取UI文件。 ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QPushButton, QLineEdit, QVBoxLayout, QLabel from PyQt5.QtCore import Qt ``` 2. **设计UI界面**:可以使用`*.ui`文件(通过Qt Designer创建并保存)或手动编布局,包含输入框、数字按钮、运算符按钮和结果显示区域等元素。 ```python class CalculatorWindow(QMainWindow): def __init__(self): super().__init__() self.ui = load_ui('calculator.ui', self) ``` 3. **绑定事件处理函数**:为每个按钮添加点击事件处理器,例如对于数字按钮,存储数值,对于运算符按钮,计算表达式并更新结果显示。 ```python def on_number_button_clicked(num): current_value = self.ui.display.text() if current_value != "0": self.ui.display.setText(current_value + str(num)) else: self.ui.display.setText(str(num)) def on_operation_button_clicked(op): # 实现运算逻辑... ``` 4. **处理用户输入和计算**:当用户按下等于号或清除键时,解析当前的表达式,执行计算,并将结果显示在屏幕上。 ```python def on_equal_button_clicked(): try: result = eval(self.ui.display.text()) self.ui.display.setText(str(result)) except Exception as e: print("Invalid expression:", e) def on_clear_button_clicked(): self.ui.display.setText("0") ``` 5. **初始化主窗口和启动应用程序**:在`main()`函数中,创建一个`QApplication`实例,设置窗口大小、标题等属性,然后显示窗口。 ```python if __name__ == "__main__": app = QApplication(sys.argv) calculator = CalculatorWindow() calculator.show() sys.exit(app.exec_()) ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值