PyQt5资源系统、静态资源处理

   PyQt5资源系统

PyQt5支持Qt的资源系统。这是一种在应用程序中嵌入图标和翻译文件等资源的工具。这使得这些资源的打包和分发变得更加容易。

一个.qrc资源集合文件是用来指定文件将被嵌入其资源的XML文件。然后,应用程序按原始名称引用资源文件,但前面有冒号。

有关完整说明(包括.qrc文件格式),请参阅Qt文档中的Qt资源系统。

   pyrcc5 

pyrcc5是PyQt5相当于Qt的rcc实用程序,并以完全相同的方式使用。 pyrcc5读取.qrc文件和资源文件,并生成一个只需要import由应用程序编辑的Python模块, 以便使这些资源可用,就像它们是原始文件一样。

 

静态资源处理

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

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

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

python3 -m PyQt5.uic.pyuic windows.ui -o windows.py 
或者
pyuic5 windows.ui -o 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")

注意:

必须将所有静态文件作以上处理。

 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值