Qt Designer生成的ui文件转py文件
win+r 打开cmd,进入ui文件所在的目录下。- 输入
python -m PyQt5.uic.pyuic ui文件名.ui -o 想要生成的py文件名.py - 运行后将在ui文件目录下生成py文件。
通过类的继承来调用生成的py文件
首先是生成的py文件,我将其命名为了testtest.py 。
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(1262, 791)
self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
self.buttonBox.setGeometry(QtCore.QRect(910, 680, 241, 32))
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
self.buttonBox.setObjectName("buttonBox")
self.pushButton = QtWidgets.QPushButton(Dialog)
self.pushButton.setGeometry(QtCore.QRect(540, 670, 112, 34))
self.pushButton.setMouseTracking(False)
self.pushButton.setObjectName("pushButton")
self.asdq1111 = QtWidgets.QOpenGLWidget(Dialog)
self.asdq1111.setGeometry(QtCore.QRect(440, 150, 300, 200))
self.asdq1111.setObjectName("asdq1111")
self.retranslateUi(Dialog)
self.buttonBox.accepted.connect(Dialog.accept)
self.buttonBox.rejected.connect(Dialog.reject)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.pushButton.setText(_translate("Dialog", "PushButton"))
然而通过转换 ui 文件为 py 文件,得到的只是界面的 ui 的类, 并不包括启动界面的函数,我们称之为界面文件。因此需要新建一个 py 文件使窗口显示出来,这个新建的文件我们称为逻辑文件。
下面是逻辑文件的代码:
import sys
from PyQt5.QtWidgets import QApplication, QDialog
from testtest import Ui_Dialog
class MyWindow(QDialog, Ui_Dialog):
def __init__(self, parent=None):
super(MyWindow,self).__init__()
self.setupUi(self)
if __name__ == '__main__':
app = QApplication(sys.argv)
myWin = MyWindow()
myWin.show()
sys.exit(app.exec_())
我们通过对生成的py文件进行类的继承,来展示主窗体。
|