pyqt生成.py文件和资源打包

本文介绍了如何使用pyuic5将.ui设计文件转换为.py文件,并通过两种方法在程序中调用。同时讲解了如何使用pyrcc5打包资源文件,以及注意事项,包括资源文件的管理和更新策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0、前提。需要用到pyuic5pyrcc5两个包

1、.ui文件生成.py文件

需要用到pyuic5pyrcc5两个包。
在.ui文件的路径下用cmd执行以下命令

pyuic5 -o XXX.py XXX.ui

XXX.py是目标文件,XXX.ui是qt designer生成的文件。
注意,顺序不可写反,否则XXX.ui会被覆盖,设计工作重来
注意,顺序不可写反,否则XXX.ui会被覆盖,设计工作重来
注意,顺序不可写反,否则XXX.ui会被覆盖,设计工作重来

1.1、使用.py界面文件

生成的.py文件两种方法调用
1、直接在.py文件中添加主程序标识,创建实例,如下例,我的UI文件名为ui_mianwindow.ui,生成的ui_mainwindow.py:

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

# Form implementation generated from reading ui file 'ui_mainwindow.ui'
#
# Created by: PyQt5 UI code generator 5.15.7
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.

#从此开始,为pyuic5自动生成的代码,不建议修改
from PyQt5 import QtCore, QtGui, QtWidgets
#主程序
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
    ……
#自动添加的资源打包文件
import main_window_rc
#至此结束
    
#添加以下创建实例
if __name__ == "__main__":
    import sys

    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

2、在其他程序中调用改界面文件(建议)
如创建一个主程序文件:

from UI.ui_mainwindow import Ui_MainWindow

    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

2、资源文件打包

在Qt Designer 中设计界面时是不能直接加入图片和图标等资源的,而是需要在PyQt开发目录下编写.qrc文件,可以用文本编辑器打开。
在.qrc文件的路径下用cmd执行以下命令

pyrcc5 XXX.qrc -o XXX_rc.py

XXX_rc.py名字要加后缀)是目标文件,XXX.qrc是在qt designer生成的资源列表文件。

2.1、使用.py资源文件

这个文件的使用方法也是导入,但是这个导入工作在生成.py界面时自动生成了(看上面代码块),我们要做的只是把他放在相应目录下

注意1、一般情况,.qrc文件在.ui文件同一个路径,生成后,建议复制一份到调用.py界面文件的主程序目录下。

注意2、更新资源后,要重新生成资源文件。原因是Qt Designer设计时放入的图片都是路径,但打包后是将资源数字化。

注意3、在引用.py界面文件的主程序中可以通过程序绑定资源,这样绑定的资源更新后不需要生成资源文件,对于经常更新的图片等资源来说更方便

本篇随手记,有空再更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值