eclipse将pyqt5将QtDesigner生成的ui文件转换为可执行的Python文件

pyqt5将QtDesigner生成的ui文件转换为可执行的Python文件

python和pyqt5的安装

请看我的博客Windows下python+pyqt5安装教程

Qt Designer的安装

找到python的默认安装目录,每台电脑都不一样,如果实在找不到在下图红线圈出的位置输入python进行查找


在python默认安装目录下的Lib文件夹下找到site-packages文件夹并打开,查看有无designer.exe文件,如果有直接打开并跳到将ui文件转换为python文件这一步。如果没有找到,有两种方法解决:

1、打开cmd窗口,输入pip3 install pyqt5-tools安装designer.exe。


等待一会,就可安装完成,然后在Python/Lib/site-packages/pyqt5-tools目录下可找到designer.exe文件,右键发送到桌面快捷方式,以后就可以直接点击桌面上的快捷方式打开designer.exe文件。

2、如果安装过qt creator的话,在C:\Qt\Qt5.8.0\5.8\mingw53_32\bin目录下即可找到designer.exe文件,右键发送到桌面快捷方式,以后就可以直接点击桌面上的快捷方式打开designer.exe文件。


将ui文件转换成python文件

打开designer.exe,写一个简单的Hello pyqt5窗口程序


点击Widget,并点击创建按钮


拖入一个label控件,并修改文本为“Hello pyqt5”


然后按下Ctrl+S,修改ui文件名并保存。我是修改成了test名字并保存到了F盘。


可以关闭designer.exe文件了。然后打开cmd窗口,输入pyuic5并回车,如果安装前面叙述的安装方法,应该会出现下图这种情况,表示pyuic5是一个可以识别的命令。


然后输入pyuic5 -o 目标python文件的绝对路径 源ui文件的绝对路径 ,注意空格,我把目标python文件也保存在了F盘,并命名为test.py文件。


我们就能看到F盘下生成了一个test.py文件,打开该文件,我们可以看到以下内容


直接运行该文件,你会发现什么都没有发生,这是因为我们只是建立了一个窗口类,还没有实例化。在导入包的部分添加代码

import sys

在文件末尾添加代码

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_Form()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

添加完成后你会看到全部代码是这样的:

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

# Form implementation generated from reading ui file 'F:\test.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
import sys
from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(400, 300)
        self.label = QtWidgets.QLabel(Form)
        self.label.setGeometry(QtCore.QRect(140, 90, 171, 61))
        self.label.setObjectName("label")

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

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.label.setText(_translate("Form", "Hello pyqt5"))

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_Form()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

编译运行之后:


哇,窗口出现了哦~(*^▽^*)

简化转换步骤

由于每次转换都要写一次命令行,十分麻烦,我们可以这样操作来简化步骤。建立一个txt文件,向txt文件中写入pyuic5 -o test.py test.ui 文本(python文件和ui文件名用什么都可以)


然后在任意一个盘新建一个文件夹并命名,不妨在F盘下建立文件夹并命名为test,然后把该txt文件保存至该文件夹下并命名为test.txt,将test.txt文件扩展名改为bat。将ui文件也移动到该文件夹下,并命名为test文件中的ui文件名。


点击是。然后双击test.bat文件,我们会看到dos黑窗口一闪而过,然后test文件夹下就自动生成了与test.ui文件对应的test.py文件


保存好这个test.bat文件,每次需要将ui文件转换成python文件时,都可以把ui文件命名为test.bat中的ui文件名然后移动至test文件夹下,双击直接运行test.bat文件就可以直接生成python文件了,是不是简便很多了呢?(*^▽^*)

猜你喜欢

转载自blog.csdn.net/richenyunqi/article/details/80303351