再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如下图
- 设置添加 pyrcc 如下图
这样,使用的时候就直接在pycharm里右键转换了