【Qt】资源系统(Resource System)

Qt资源系统是当应用程序执行时,用于存储二进制文件独立平台机制。

如果应用程序总是需要一组文件(例如:图标,翻译文件等),并且你不想冒失去这些文件的风险,使用Qt资源系统是非常有效的。

Resource Collection Files (.qrc)

与应用程序相关的资源都写在了.qrc文件中,其符合XML格式。该文件列出了硬盘中的文件,并为他们分配资源的名字,方便应用程序使用这些资源。

<RCC version="1.0">
<qresource>
    <file>images/copy.pngfile>
    <file>images/cut.pngfile>
    <file>images/new.pngfile>
    <file>images/open.pngfile>
    <file>images/paste.pngfile>
    <file>images/save.pngfile>
qresource>
RCC>

.qrc中列出的资源文件是应用程序资源树的一部分,其具体的文件路径相对于.qrc所在目录。注意:所列出的资源文件必须要与.qrc在同一目录,或者在其子目录。

资源数据可被编译为二进制并且存储到应用程序的代码中,应用程序代码可通过资源系统创建二进制资源。

默认情况,通过:/或qrc格式结合文件访问资。

例::/images/cut.pngqrc:///images/cut.png

该文名为images/cut.png,可在file标签内添加alias属性对其进行修改。

<file alias="cut-img.png">images/cut.pngfile>

之后,可通过 :/cut-img.png对文件进行访问。

也可在qresoucre标签内添加prefix属性对其修改,为其添加一个前缀路径。

<qresource prefix="/myresources">
    <file alias="cut-img.png">images/cut.pngfile>
qresource>

此时,文件可通过:/myresources/cut-img.png进行访问。

根据用户的语境,一些资源需要更改文件名,如翻译文件或图表。可在qresource标签中通过添加lang属性来指定一个适合语境的名称。如:

<qresource>
    <file>cut.jpgfile>
qresource>
<qresource lang="fr">
    <file alias="cut.jpg">cut_fr.jpgfile>
qresource>

在应用程序中使用资源

在应用程序中,资源路径可替代原始文件路径。特别的,可使用资源路径替代QIcon,Qimage和QPixmap构造器中的文件名。

cutAct = new QAction(QIcon(":/images/cut.png"), tr("Cu&t"), this);

参考:https://doc.qt.io/qt-5/resources.html

你可能感兴趣的:(Qt,qt)