本文将介绍Qt两种资源使用方式,方便指定我们直接用qrc和rcc命名。
版本:Qt 5.12.3
1.Qrc
一般来说,资源文件可以在资源收集文件(.qrc)中指定,包括字体文件(.ttf),图片(.png),翻译文件(.qm)以及qml页面文件(.qml)等。
.qrc文件中列出的资源文件属于应用程序源树的一部分。在.qrc文件中描述的资源文件路径也是相对于.qrc文件所在的目录的。当然,其中的资源文件必须与.qrc文件位于同一目录或在其子目录下。
资源可以在应用程序中以与源树中相同的文件名(带有:/前缀)比如load(":/language/lang.zh_CN.qm")或具有qrc方案的URL进行访问,例如source:“qrc:/image/img.jpg”。
在这里补充一句,Qt资源系统与平台无关,它可在应用程序的可执行文件中存储二进制文件。
为了将资源编译成二进制文件,必须在应用程序的.pro文件中提及.qrc文件,以便qmake知道它:
RESOURCES += resource.qrc
qmake将生成make规则,以生成一个名为qrc_ resource.cpp的文件,此文件在可执行文件所在目录下。此文件会链接到应用程序中。该文件包含图像的所有数据和其他资源,打开之后可以看到,主要有三个static const数组:
qt_resource_data[],qt_resource_name[],及qt_resource_struct[]
它们是压缩二进制数据的静态C++数组。 每当.qrc文件更改或它所引用的文件之一更改时,都会自动重新生成qrc_ res