为了解决图标文件(以及帮助文件和其它一些较小的文件)与应用程序目录不匹配 或者 易丢失 的问题,在PyQt中,可以将多个图标文件打包成资源文件,再编译成一个.py 文件以供应用程序调用。步骤如下:
首先,要创建一个含有拟使用图标文件细节的 .qrc 文件:
假定文件的名字为 my_resource.qrc,文件的内容如下:
editcopy.pngeditcut.pngtextjustify.pngeditpaste.pngfilenew.pngsdf.htmlsdf2.html
通过对话框,可选择要加载的文件(可多选),可以给已选的文件加别名。最后点OK 即可生成相应的 .qrc 文件。
然后通过命令行,用 pyrcc5 -o命令就可以将 .qrc 文件编译为 .py 文件。
可参考以下批处理命令:
e:cd "E:Python36MyPythonFilesMyPyQt5主窗口程序 - 副本"pyrcc5 -o my_resource.py my_resource.qrc
最后,在程序头部导入该py文件即可:
import my_resource
之后就可以在程序中这样创建图标:
QIcon(":icon/editpaste.png")#创建资源文件时若设有分组前缀
如果设置了别名,则不可以使用文件名,必须使用别名(若有前缀还是要带上前缀):
QIcon(":icon/cut")
如果没有前缀也无别名,则下面两种写法都是可以的:
QIcon(":exportpdf.png")QIcon(":/exportpdf.png")
开头的 ":" , 是告诉PyQt,这是一个资源。