【Qt】资源系统(Resource System) 秒速五厘米 2022-10-23 12:44 113阅读 0赞 Qt资源系统是当应用程序执行时,用于存储二进制文件独立平台机制。 如果应用程序总是需要一组文件(例如:图标,翻译文件等),并且你不想冒失去这些文件的风险,使用Qt资源系统是非常有效的。 ## Resource Collection Files (.qrc) ## 与应用程序相关的资源都写在了`.qrc`文件中,其符合XML格式。该文件列出了硬盘中的文件,并为他们分配资源的名字,方便应用程序使用这些资源。 <!DOCTYPE RCC><RCC version="1.0"> <qresource> <file>images/copy.png</file> <file>images/cut.png</file> <file>images/new.png</file> <file>images/open.png</file> <file>images/paste.png</file> <file>images/save.png</file> </qresource> </RCC> 在`.qrc`中列出的资源文件是应用程序资源树的一部分,其具体的文件路径相对于.qrc所在目录。注意:所列出的资源文件必须要与`.qrc`在同一目录,或者在其子目录。 资源数据可被编译为二进制并且存储到应用程序的代码中,应用程序代码可通过资源系统创建二进制资源。 默认情况,通过`:/`或qrc格式结合文件访问资。 例:`:/images/cut.png`;`qrc:///images/cut.png`。 该文名为`images/cut.png`,可在file标签内添加alias属性对其进行修改。 <file alias="cut-img.png">images/cut.png</file> 之后,可通过 `:/cut-img.png`对文件进行访问。 也可在qresoucre标签内添加prefix属性对其修改,为其添加一个前缀路径。 <qresource prefix="/myresources"> <file alias="cut-img.png">images/cut.png</file> </qresource> 此时,文件可通过`:/myresources/cut-img.png`进行访问。 根据用户的语境,一些资源需要更改文件名,如翻译文件或图表。可在qresource标签中通过添加`lang`属性来指定一个适合语境的名称。如: <qresource> <file>cut.jpg</file> </qresource> <qresource lang="fr"> <file alias="cut.jpg">cut_fr.jpg</file> </qresource> ## 在应用程序中使用资源 ## 在应用程序中,资源路径可替代原始文件路径。特别的,可使用资源路径替代QIcon,Qimage和QPixmap构造器中的文件名。 cutAct = new QAction(QIcon(":/images/cut.png"), tr("Cu&t"), this); 参考:[https://doc.qt.io/qt-5/resources.html][https_doc.qt.io_qt-5_resources.html] [https_doc.qt.io_qt-5_resources.html]: https://doc.qt.io/qt-5/resources.html
还没有评论,来说两句吧...