您当前的位置: 首页 >  qt

插件开发

暂无认证

  • 4浏览

    0关注

    492博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Qt-qrc资源文件-rcc打包-程序调用-ZIP压缩和解压-安装程序制作参考

插件开发 发布时间:2022-08-21 17:21:31 ,浏览量:4

文章目录
    • 1.qrc文件编辑
    • 2.将qrc文件转位rcc
    • 3.资源使用
    • 4.ZIP压缩和解压
      • 4.1.解压
      • 4.2.压缩
    • 5.错误
    • 6.作者答疑
将程序的资源文件打包在程序的应用程序内,能够使程序保持更大的稳定性,本文围绕qrc资源文件的编辑,rcc文件打包,最后示范如何在exe或者dll上调用。

1.qrc文件编辑

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,如下图所示: 在这里插入图片描述

4.1.解压

然后非常简单就能解压文件,如下所示:

#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()             
关注
打赏
1665481431
查看更多评论
0.0801s