QT将资源打包为外部资源文件进行引用
将资源打包为外部资源文件进行引用,这样能减少可执行程序exe的大小,在调试运行时需要将相应的rcc复制到对应的Debug或release目录下,否则会加载不了资源
对应的qrc应该类似于
myres.qrc
<RCC>
<qresource prefix="/">
<file>res/img_bg_level_1.jpg</file>
<file>res/img_bg_level_2.jpg</file>
</qresource>
</RCC>
我们知道这个可能通过rcc.exe将myres.qrc打包为rcc
例:
"D:\Qt\Tools\QtDesignStudio-2.2.0-preview\qt5_design_studio_reduced_version\bin\rcc.exe" -binary myres.qrc -o myres.rcc
rcc资源的引入使用
QResource::registerResource(QCoreApplication::applicationDirPath() + "/myres.rcc");
qDebug()<<""+QCoreApplication::applicationDirPath();
一个qt源码pro里面只有打包后资源rcc文件,只有rcc我们想修改资如何处理呢?
可以用下面方法取出来
#include <QFile>
#include <QByteArray>
QFile resFile(":/res/img_bg_level_1.jpg");
resFile.open(QFile::ReadOnly);
QByteArray data = resFile.readAll();
resFile.close();
resFile.close();
resFile.setFileName("./img_bg_level_1.jpg");
resFile.open(QFile::WriteOnly);
resFile.write(data);
resFile.close();
标签:myres,qrc,QT,jpg,resFile,资源,打包,rcc
From: https://blog.51cto.com/u_12668715/7194747