pyqt5将图形设计生成的ui文件转化为py文件

qt creator 是一款跨平台的 qt 集成开发环境(ide),由 nokia 在收购 qt 后推出。该 ide 能够在多种操作系统上运行,包括 linux(32 位及 64 位)、mac os x 和 windows。根据官方说法,qt creator 的设计目的是为了帮助开发者利用 qt 框架更快、更轻松地完成开发任务。

在使用 Qt Creator 或其设计器创建图形界面时,会生成一个 ui 文件。为了将这个 ui 文件转换为 py 文件,以下是详细步骤:

① 在 Qt Creator 中选择一个模板

② 配置模板直到完成

③ 进入主界面

下面是 xml 格式的 ui 文件

在设计器中添加一些控件

保存后会生成三个文件

④ 进入保存文件的文件夹,打开终端(CMD),输入以下命令(适用于 Mac 和 Windows):

pyuic5 -o qttest.py qttest.ui

此命令将 ui 文件转换为 py 文件。

以下是生成的 Python 代码:

# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'qttest.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_qttest(object): def setupUi(self, qttest): qttest.setObjectName("qttest") qttest.resize(800, 600) self.centralwidget = QtWidgets.QWidget(qttest) self.centralwidget.setObjectName("centralwidget") self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(110, 300, 114, 32)) self.pushButton.setObjectName("pushButton") self.label = QtWidgets.QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(300, 40, 59, 16)) self.label.setObjectName("label") self.timeEdit = QtWidgets.QTimeEdit(self.centralwidget) self.timeEdit.setGeometry(QtCore.QRect(240, 190, 118, 22)) self.timeEdit.setObjectName("timeEdit") self.dateEdit = QtWidgets.QDateEdit(self.centralwidget) self.dateEdit.setGeometry(QtCore.QRect(400, 350, 110, 22)) self.dateEdit.setObjectName("dateEdit") qttest.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(qttest) self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 22)) self.menubar.setObjectName("menubar") qttest.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(qttest) self.statusbar.setObjectName("statusbar") qttest.setStatusBar(self.statusbar)

    self.retranslateUi(qttest)
    QtCore.QMetaObject.connectSlotsByName(qttest)

def retranslateUi(self, qttest):
    _translate = QtCore.QCoreApplication.translate
    qttest.setWindowTitle(_translate("qttest", "MainWindow"))
    self.pushButton.setText(_translate("qttest", "PushButton"))
    self.label.setText(_translate("qttest", "QT TEST"))

⑤ 此时,解释器可以运行该代码。为了显示界面,需要添加以下主函数和 PyQt 包:

if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
widget = QWidget(None)
Ui_Form().setupUi(widget)
sys.exit(app.exec_())
pass

请注意,相应的名称需要进行修改。