先来更正上一篇中的笔误,设置类类名应为QSettings,多一个“s”。
from PyQt5.QtCore import QSettings
为了解决图标文件(以及帮助文件和其它一些较小的文件)与应用程序目录不匹配 或者 易丢失 的问题,在PyQt中,可以将多个图标文件打包成资源文件,再编译成一个.py 文件以供应用程序调用。步骤如下:
首先,要创建一个还有拟使用图标文件细节的 .qrc 文件:
假定文件的名字为 my_resource.qrc,文件的内容如下:
<RCC>
<qresource prefix="icon">
<file alias="copy">editcopy.png</file>
<file alias="cut">editcut.png</file>
<file alias="justify">textjustify.png</file>
<file>editpaste.png</file>
<file alias="new">filenew.png</file>
</qresource>
<qresource prefix="html">
<file alias="1">sdf.html</file>
<file alias="2">sdf2.html</file>
</qresource>
</RCC>
.qrc 文件是一种简单的XML格式的文件,可通过手写完成(也可以自编小程序代替手写),还可以Qt 设计师 的 资源浏览器创建(从pip安装 pyqt5-tools 即可完成Qt Designer程序的安装,使用Qt Designer可以通过拖动部件的方式很方便创建应用程序的用户界面,后续会有介绍):
通过对话框,可选择要加载的文件(可多选),可以给已选的文件加别名。最后点OK 即可生成相应的 .qrc 文件。
然后通过命令行,用 pyrcc5 -o命令就可以将 .qrc 文件编译为 .py 文件。
可参考以下批处理命令:
e:
cd "E:\Python36\MyPythonFiles\MyPyQt5\主窗口程序 - 副本"
pyrcc5 -o my_resource.py my_resource.qrc
最后,在程序头部导入该py文件即可:
import my_resource
之后就可以在程序中这样创建图标:
QIcon(":/icon/editcut.png")#创建资源文件时设有前缀,所有有二级目录
因为设置了别名,也可以这样简写:
QIcon(":/cut")
开头的 ":/" , 会告诉PyQt,这是一个资源。