基于PyQt5的简易计算器

4 篇文章 1 订阅

基于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.Qt.SizeBDiagCursor))
        self.display.setFocusPolicy(QtCore.Qt.NoFocus)
        self.display.setLayoutDirection(QtCore.Qt.LeftToRight)
        self.display.setText("")
        self.display.setObjectName("display")
        self.verticalLayout.addWidget(self.display)
        self.lineEdit_op = QtWidgets.QLineEdit(widget)
        self.lineEdit_op.setObjectName("lineEdit_op")
        self.verticalLayout.addWidget(self.lineEdit_op)
        self.gridLayout = QtWidgets.QGridLayout()
        self.gridLayout.setObjectName("gridLayout")
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setSpacing(15)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.four = QtWidgets.QPushButton(widget)
        self.four.setObjectName("four")
        self.horizontalLayout_3.addWidget(self.four)
        self.five = QtWidgets.QPushButton(widget)
        self.five.setObjectName("five")
        self.horizontalLayout_3.addWidget(self.five)
        self.six = QtWidgets.QPushButton(widget)
        self.six.setObjectName("six")
        self.horizontalLayout_3.addWidget(self.six)
        self.subtract = QtWidgets.QPushButton(widget)
        self.subtract.setObjectName("subtract")
        self.horizontalLayout_3.addWidget(self.subtract)
        self.gridLayout.addLayout(self.horizontalLayout_3, 2, 0, 1, 1)
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint)
        self.horizontalLayout.setSpacing(15)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.brackets_left = QtWidgets.QPushButton(widget)
        self.brackets_left.setEnabled(False)
        self.brackets_left.setObjectName("brackets_left")
        self.horizontalLayout.addWidget(self.brackets_left)
        self.brackets_right = QtWidgets.QPushButton(widget)
        self.brackets_right.setEnabled(False)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.brackets_right.sizePolicy().hasHeightForWidth())
        self.brackets_right.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Times New Roman")
        font.setPointSize(12)
        self.brackets_right.setFont(font)
        self.brackets_right.setObjectName("brackets_right")
        self.horizontalLayout.addWidget(self.brackets_right)
        self.clearall = QtWidgets.QPushButton(widget)
        self.clearall.setObjectName("clearall")
        self.horizontalLayout.addWidget(self.clearall)
        self.remove = QtWidgets.QPushButton(widget)
        self.remove.setObjectName("remove")
        self.horizontalLayout.addWidget(self.remove)
        self.horizontalLayout.setStretch(0, 1)
        self.horizontalLayout.setStretch(3, 1)
        self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setContentsMargins(-1, 0, 0, -1)
        self.horizontalLayout_2.setSpacing(15)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.one = QtWidgets.QPushButton(widget)
        self.one.setObjectName("one")
        self.horizontalLayout_2.addWidget(self.one)
        self.two = QtWidgets.QPushButton(widget)
        self.two.setObjectName("two")
        self.horizontalLayout_2.addWidget(self.two)
        self.three = QtWidgets.QPushButton(widget)
        self.three.setObjectName("three")
        self.horizontalLayout_2.addWidget(self.three)
        self.add = QtWidgets.QPushButton(widget)
        self.add.setObjectName("add")
        self.horizontalLayout_2.addWidget(self.add)
        self.gridLayout.addLayout(self.horizontalLayout_2, 1, 0, 1, 1)
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_4.setSpacing(15)
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.seven = QtWidgets.QPushButton(widget)
        self.seven.setObjectName("seven")
        self.horizontalLayout_4.addWidget(self.seven)
        self.eight = QtWidgets.QPushButton(widget)
        self.eight.setObjectName("eight")
        self.horizontalLayout_4.addWidget(self.eight)
        self.nine = QtWidgets.QPushButton(widget)
        self.nine.setObjectName("nine")
        self.horizontalLayout_4.addWidget(self.nine)
        self.multiply = QtWidgets.QPushButton(widget)
        self.multiply.setObjectName("multiply")
        self.horizontalLayout_4.addWidget(self.multiply)
        self.gridLayout.addLayout(self.horizontalLayout_4, 3, 0, 1, 1)
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_5.setSpacing(15)
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.point = QtWidgets.QPushButton(widget)
        self.point.setObjectName("point")
        self.horizontalLayout_5.addWidget(self.point)
        self.zero = QtWidgets.QPushButton(widget)
        self.zero.setObjectName("zero")
        self.horizontalLayout_5.addWidget(self.zero)
        self.equal = QtWidgets.QPushButton(widget)
        self.equal.setEnabled(True)
        self.equal.setObjectName("equal")
        self.horizontalLayout_5.addWidget(self.equal)
        self.divid = QtWidgets.QPushButton(widget)
        self.divid.setObjectName("divid")
        self.horizontalLayout_5.addWidget(self.divid)
        self.gridLayout.addLayout(self.horizontalLayout_5, 4, 0, 1, 1)
        self.verticalLayout.addLayout(self.gridLayout)
        self.verticalLayout_2.addLayout(self.verticalLayout)

        self.retranslateUi(widget)
        QtCore.QMetaObject.connectSlotsByName(widget)

    def retranslateUi(self, widget):
        _translate = QtCore.QCoreApplication.translate
        widget.setWindowTitle(_translate("widget", "简易计算器v1.0"))
        self.four.setText(_translate("widget", "4"))
        self.five.setText(_translate("widget", "5"))
        self.six.setText(_translate("widget", "6"))
        self.subtract.setText(_translate("widget", "-"))
        self.brackets_left.setText(_translate("widget", "("))
        self.brackets_right.setText(_translate("widget", ")"))
        self.clearall.setText(_translate("widget", "CE"))
        self.remove.setText(_translate("widget", "<-"))
        self.one.setText(_translate("widget", "1"))
        self.two.setText(_translate("widget", "2"))
        self.three.setText(_translate("widget", "3"))
        self.add.setText(_translate("widget", "+"))
        self.seven.setText(_translate("widget", "7"))
        self.eight.setText(_translate("widget", "8"))
        self.nine.setText(_translate("widget", "9"))
        self.multiply.setText(_translate("widget", "×"))
        self.point.setText(_translate("widget", "."))
        self.zero.setText(_translate("widget", "0"))
        self.equal.setText(_translate("widget", "="))
        self.divid.setText(_translate("widget", "÷"))

总结

提示:这里对文章进行总结:

以上为Designer设计到ui文件转换为py文件的过程,接下来,对主文件进行编辑,也就是将实现按键和显示屏的功能。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值