PyQt5资源处理

再PyQt进行图形界面开发时不免要用到一些图片资源或者qt designer编辑的ui文件。在app进行打包发布的时候,通常图片资源却不方便处理,app安装的时候还必须确保app可以找到图片。qt官方提供了一个工具可以把资源文件编译成二进制程序文件,直接打包到程序中去。

1.将ui文件编译为py文件

例如资源文件 mian_windows.ui 输入以下命令:

python3 -m PyQt5.uic.pyuic main_windows.ui -o mian_windows.py 
或者
pyuic5 main_windows.ui -o mian_windows.py 

ui文件被转换为ui文件,这是pyqt程序要能够运行所必须的

2.将图片资源编译为py文件

例如存在图片 a.png 和 b.png 都位于 ./img/ 路径下面,在 ./ 下新建一个文件 img_rcc.qrc 文件,输入以下内容:

<!DOCTYPE RCC><RCC version="1.0"> 
 <qresource prefix="/img">
    <file alias="a.png">./img/a.png</file>
    <file alias="b.png">./img/b.png</file>
  </qresource>
</RCC>

alias的值是图片的代码里的文件名代号,prefix是文件名前缀

然后在终端里输入以下命令将img_rcc.qrc 转换为py文件:

pyrcc5 img_rcc.qrc -o img.py 

生成了img.py 文件,观察img.py文件会发现,图片资源被转换为了bytes类型放在py文件里。
使用方法如下:

from img.py import * # 导入这个文件,会自动调用资源初始化函数

# 使用资源的时候 访问的文件名 即 qrc里的 :prefix+alias ,例如
img = QPixmap(":/img/a.png")

3.PyCharm扩展工具设置

启动 Pycharm 进入 Setting ,找到 Tools->External Tools 点击上面的加号添加

  • 设置添加pyuic如下图

《PyQt5资源处理》 Paste_Image.png

  • 设置添加 pyrcc 如下图

《PyQt5资源处理》 Paste_Image.png

这样,使用的时候就直接在pycharm里右键转换了

    原文作者:木兮家先生
    原文地址: https://www.jianshu.com/p/cd1bd093be13
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞