文章目录
将程序的资源文件打包在程序的应用程序内,能够使程序保持更大的稳定性,本文围绕qrc资源文件的编辑,rcc文件打包,最后示范如何在exe或者dll上调用。
1.qrc文件编辑
- 1.qrc文件编辑
- 2.将qrc文件转位rcc
- 3.资源使用
- 4.ZIP压缩和解压
- 4.1.解压
- 4.2.压缩
- 5.错误
- 6.作者答疑
qrc文件本身内容是个xml文件,如下所示:
Resource/Install20220821.zip
实际上,它有许多规则,如何简单使用?可以用qrceditor.exe这个软件来编辑。下载路径。
2.将qrc文件转位rcc将Qt Bin所在路径临时添加入系统PATH目录,脚本如下所示:
Set PATH=%PATH%;E:\OpenSource\QT\vs2017Qt\Qt5_9_2_VS2017_Static_64\bin
将qrc文件转为二进制文件,代码如下所示:
rcc -binary QtInstallVS2017A.qrc -o QtInstallVS2017A.rcc
rcc -binary QtInstallVS2017.qrc -o QtInstallVS2017.rcc
3.资源使用
打包之后的资源如何使用,需要在程序中注册。如果与项目默认文件名一致,会打包到exe文件,且不需要注册。
bool rlt=QResource::registerResource("QtInstallVS2017A.rcc");
if (rlt) {
QFile file(":/File/Install20220821.zip"); //":/前缀/文件名"
if (file.open(QIODevice::ReadOnly)) {
int k = 0;
}
}
注意:资源文件放在项目所在目录,而不是解决方案所在目录。
4.ZIP压缩和解压在Qt中使用内置的压缩和解压模块,需要在模块中加载gui-private,如下图所示:
然后非常简单就能解压文件,如下所示:
#include "QtGui/private/qzipreader_p.h"
#include "QtGui/private/qzipwriter_p.h"
//解压文件到文件夹
QZipReader reader(srcZipFilename);
reader.extractAll(dstFolder);
4.2.压缩
将文件夹压缩为zip文件。代码如下所示:
#include "QtGui/private/qzipreader_p.h"
#include "QtGui/private/qzipwriter_p.h"
#include
#include
#include
#include
#include
static bool QZipWriterEx(QZipWriter *writer, QString tmpPath, QString basePath)
{
QDir dir(tmpPath);
QFileInfoList fil = dir.entryInfoList();
foreach(QFileInfo info, fil)
{
if (info.fileName() == "." || info.fileName() == "..")
continue;
if (info.isFile())
{
QFile upfile(info.filePath());
upfile.open(QIODevice::ReadOnly);
QString fileName = info.filePath().mid(basePath.size() + 1, info.filePath().size());
writer->addFile(fileName, upfile.readAll());
//qDebug()
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?