编程语言
首页 > 编程语言> > 利用python的pyqt5制作页面的一般模板

利用python的pyqt5制作页面的一般模板

作者:互联网

本文以制作一个简陋的计算器页面为例,来介绍制作页面时必不可少的一些部分

首先是主页面,该页面用于汇集页面和功能,如下:
main.py

import sys#必要部分1:必须导入sys模块
from PyQt5.QtWidgets import QMainWindow, QApplication#必要部分2:QMainWindow可以提供.show()方法,从而展示窗口
from 计算两个数字 import *#必要部分3:计算两个数字.py是生成界面的文件


class window(QMainWindow,Ui_Form):#必要部分4:将页面文件汇集过来
    def __init__(self):
        super(window, self).__init__()#必要部分5:用类window()继承
        self.setupUi(self)#必要部分6:
        #self.initUI()

    def add(self):
        self.a=float(self.lineEdit.text())
        self.b = float(self.lineEdit_2.text())
        self.label.setText('两个数的和是:'+str(self.a+self.b))

if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = window()
    main.show()
    sys.exit(app.exec_())

接着是页面的文件,该文件既可以通过QTdesigner生成,也可以通过手写生成
计算两个数字.py

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

# Form implementation generated from reading ui file '计算两个数字.ui'
#
# Created by: PyQt5 UI code generator 5.15.2
#
# 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, QtWidgets


class Ui_Form(object):
    def setupUi(self, Form):#必要部分:参数Form表示可以往此类中添加一个窗口,在主文件main.py中,Form将以self的形式被传入
        Form.setObjectName("Form")
        Form.resize(492, 294)
        self.verticalLayoutWidget = QtWidgets.QWidget(Form)
        self.verticalLayoutWidget.setGeometry(QtCore.QRect(90, 50, 322, 211))
        self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.label = QtWidgets.QLabel(self.verticalLayoutWidget)
        self.label.setObjectName("label")
        self.verticalLayout.addWidget(self.label)
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.lineEdit = QtWidgets.QLineEdit(self.verticalLayoutWidget)
        self.lineEdit.setObjectName("lineEdit")
        self.horizontalLayout.addWidget(self.lineEdit)
        self.lineEdit_2 = QtWidgets.QLineEdit(self.verticalLayoutWidget)
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.horizontalLayout.addWidget(self.lineEdit_2)
        self.verticalLayout.addLayout(self.horizontalLayout)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.pushButton_2 = QtWidgets.QPushButton(self.verticalLayoutWidget)
        self.pushButton_2.setObjectName("pushButton_2")
        self.horizontalLayout_2.addWidget(self.pushButton_2)
        self.pushButton_3 = QtWidgets.QPushButton(self.verticalLayoutWidget)
        self.pushButton_3.setObjectName("pushButton_3")
        self.horizontalLayout_2.addWidget(self.pushButton_3)
        self.pushButton = QtWidgets.QPushButton(self.verticalLayoutWidget)
        self.pushButton.setObjectName("pushButton")
        self.horizontalLayout_2.addWidget(self.pushButton)
        self.pushButton_4 = QtWidgets.QPushButton(self.verticalLayoutWidget)
        self.pushButton_4.setObjectName("pushButton_4")
        self.horizontalLayout_2.addWidget(self.pushButton_4)
        self.verticalLayout.addLayout(self.horizontalLayout_2)

        self.retranslateUi(Form)
        self.pushButton_2.clicked.connect(Form.add)#必要部分:将按钮2与求和功能相连接
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.label.setText(_translate("Form", "计算结果"))
        self.pushButton_2.setText(_translate("Form", "求和"))
        self.pushButton_3.setText(_translate("Form", "求差"))
        self.pushButton.setText(_translate("Form", "求积"))
        self.pushButton_4.setText(_translate("Form", "求商"))

标签:horizontalLayout,Form,python,self,verticalLayoutWidget,pyqt5,QtWidgets,pushButto
来源: https://blog.csdn.net/weixin_45590329/article/details/113791555