PyQt5学习笔记03----Qt Designer生成源码

下面来分析一下Qt Designer生成的源码。


Qt Designer制作的图形界面为

PyQt5学习笔记03----Qt Designer生成源码_第1张图片


生成的代码如下

from PyQt5 import QtCore, QtGui, QtWidgets                                  #导入模块


class Ui_Form(object):                                                      #创建窗口类,继承object
    def setupUi(self, Form):
        Form.setObjectName("Form")                                          #设置窗口名
        Form.resize(400, 300)                                               #设置窗口大小
        self.quitButton = QtWidgets.QPushButton(Form)                       #创建一个按钮,并将按钮加入到窗口Form中
        self.quitButton.setGeometry(QtCore.QRect(280, 240, 75, 23))         #设置按钮大小与位置
        self.quitButton.setObjectName("quitButton")                         #设置按钮名


        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)                         #关联信号槽


    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Test"))                     #设置窗口标题
        self.quitButton.setText(_translate("Form", "Quit"))                 #设置按钮显示文字


现在运行这段代码,窗口是不会出现的。如何使窗口出现呢?下面需要添加一段代码

if __name__=="__main__":
    import sys
    app=QtWidgets.QApplication(sys.argv)
    widget=QtWidgets.QWidget()
    ui=Ui_Form()
    ui.setupUi(widget)
    widget.show()
    sys.exit(app.exec_())
因为Qt Designer默认继承的object类,不提供show()显示方法,所以我们生成一个QWidget对象来重载我们设计的Ui_Form类,达到显示效果。


新建一个文件,导入我们设计的untitled .py文件,实现代码与界面分离。

from PyQt5 import QtWidgets
from untitled import Ui_Form

class mywindow(QtWidgets.QWidget):
    def __init__(self):
        super(mywindow,self).__init__()
        self.new=Ui_Form()
        self.new.setupUi(self)

if __name__=="__main__":
    import sys

    app=QtWidgets.QApplication(sys.argv)
    myshow=mywindow()
    myshow.show()
    sys.exit(app.exec_())
直接继承界面类

from PyQt5 import QtWidgets
from untitled import Ui_Form

class mywindow(QtWidgets.QWidget,Ui_Form):
    def __init__(self):
        super(mywindow,self).__init__()
        self.setupUi(self)

if __name__=="__main__":
    import sys

    app=QtWidgets.QApplication(sys.argv)
    myshow=mywindow()
    myshow.show()
    sys.exit(app.exec_())






你可能感兴趣的:(python,PyQt5)