基于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文件的过程,接下来,对主文件进行编辑,也就是将实现按键和显示屏的功能。