下面来分析一下Qt Designer生成的源码。
Qt Designer制作的图形界面为
生成的代码如下
[python]
view plain
copy
- 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")) #设置按钮显示文字
现在运行这段代码,窗口是不会出现的。如何使窗口出现呢?下面需要添加一段代码
[python]
view plain
copy
- 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_())
新建一个文件,导入我们设计的untitled .py文件,实现代码与界面分离。
[python]
view plain
copy
- 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_())
[python]
view plain
copy
- 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_())