Qt资源加载之rcc文件
最近get了一个新技能,那就是rcc文件的使用。感觉瞬间释然了几个以前纠结的问题
问题来源:
使用Qt做UI的宝宝们肯定会遇到使用图片作为控件背景的问题,以前的时候只会两种处理方式:
第一种:使用qrc文件,将需要的图片资源加载到程序中。这种方式最简单,但有个致命缺陷,因为图片等资源被一起编译到了可执行程序中,所以资源的多少直接影响可执行程序的体积,且在程序启动时就要把所有的资源都加载进去,所以也会增加软件的启动时间,资源越多时间越长。
第二种:使用qss文件,在文件中配置图片文件的相对路径,在程序打包的时候,将需要的qss文件和所有的图片一起打包。这种方式可以解决使用qrc增大可执行程序体积和增加软件启动时间的问题,但是又引入另外一些问题:使用软件的人员可以通过安装软件获得软件的qss样式和图标,这个也比较致命哇!!!
但是!但是!自从知道了rcc文件的存在,这些问题都可以抛诸脑后了。。。
rcc文件是由qrc文件转化而来,可以将qrc中所有的图片、文档等资源以二进制的形式存储到rcc文件中,程序打包的时候将rcc文件带上即可。
至此也解决了一个一直困扰的问题,工程中使用python、qml等这种脚本类型的语言时,都需要将原文件打包到可执行程序中,总感觉直接带源文件是一种很大的损失,有了rcc的存在,都解决了,直接打包成二进制文件就搞定啦,完美!!!
qrc文生成*.rcc
打开cmd命令行,进入qrc所在文件夹,执行如下命令,其中resource.qrc为qrc的文件名称,根据自己工程中的名称自行修改,resource.rcc为生成的rcc文件名,根据需要自己修改文件名
rcc -binary resource.qrc -o resource.rcc
如何使用rcc文件
在程序初始化时将rcc文件注册一下即可
QResource::registerResource(rcc文件路径);
rcc中的资源使用跟qrc中的使用路径一致。