前言

  Qt使用一些压缩解压功能,探讨过libzip库,zlib库,libzip库比较原始,还有其他库,都比较基础,而在基础库之上,又有高级封装库,Qt中的QuaZIP是一个很好的选择。
  本文主要详解QuaZIP。

 

QuzZip介绍

   QuaZIP是Gilles Vollant的ZIP / UNZIP软件包的简单C ++包装,可用于访问ZIP档案。

依赖库:zlib库

   Qt 4无论如何都依赖于zlib,但是您将需要zlib标头来编译QuaZIP。使用Qt5有时,您还需要zlib库(例如,在Windows上)。

支持平台

   QuaZIP当前已在以下平台上进行了测试:

  • linux-g ++(Ubuntu 11.10,Qt 4.7.4)
  • freebsd-g ++(Qt 4.0.0
  • hpux-acc(HP-UX 11.11)
  • hpux-g ++(HP-UX 11.11)
  • win32-g ++(MinGW)
  • win32-msvc2010(MS VS 2010 Express,Qt 4.8.4)
  • win32-msvc2010(Qt Creator,Qt 5.0.1)
  • win32-msvc2012(Qt Creator,Qt 5.2.0)
 

目标平台:windows Qt5.9.3 msvc2015x86

编译zlip

下载QuaZIP

  官方:http://quazip.sourceforge.net
   QQ群下载地址:1047134658(点击“文件”搜索“quazip”,群内与博文同步更新)

 

编译QuaZIP库

步骤一:下载解压

  

步骤二:CMake配置configure

   

步骤三:修改Qt版本

  

步骤四:添加zlib库

  

步骤五:CMake生成 工程

  

步骤六:使用Qtcreator打开quazip源码pro文件

  
  上图加入zlib库的路径,然后编译。

 

模块化

  

 

Demo

#include <QApplication>
#include "QuaZibManager.h" #include <QDebug>
#define LOG qDebug()<<__FILE__<<__LINE__ int main(int argc, char *argv[])
{
QApplication a(argc, argv); LOG; QuaZibManager quaZibManager;
QStringList list = quaZibManager.getZipFileList("testFile.zip"); LOG; for(int index = 0; index < list.size(); index++)
{
LOG << list.at(index); } LOG;
return a.exec();
}
 

Demo结果

   
   

 

工程模板

  quaZipDemo_v1.0.0_基础模板_基础环境.rar

Qt三方库开发技术(一):QuaZIP介绍、编译和使用的更多相关文章

  1. Qt混合Python开发技术:Python介绍、混合过程和Demo

    前言   Qt中混合Python开发,可调用Python命令与脚本.   Python   Python是一种跨平台的计算机程序设计语言. 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语 ...

  2. 快速全面了解QT软件界面开发技术

    快速全面了解QT软件界面开发技术     目录 前言 一. 学习QT可能的目的是什么? 只想体验一下QT? 当前的项目选择了用QT. 为将来做QT技术储备. 二. QT的核心技术优势是什么? QT在软 ...

  3. Qt开发技术:QCharts(三)QCharts样条曲线图介绍、Demo以及代码详解

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  4. iOS:iOS开发非常全的三方库、插件等等

    iOS开发非常全的三方库.插件等等 github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自git ...

  5. 3星|《给产品经理讲技术》:APP开发技术介绍,没有技术背景的话恐怕只能看懂书中的比喻和结论

    基本是APP开发涉及到的相关技术的入门级介绍.涉及到的知识点与技术细节比较多,不少技术相关的内容并没有像标题暗示的那样没有技术背景也可以看懂,而是涉及到许多专业的术语.原理.也有一些内容是用比喻的方法 ...

  6. 可能对Flutter应用程序开发有用的代码/库/专有技术列表

    当我开始使用Flutter实施该应用程序时,我开始担心“如何最好地编写?”以及“如何使其更好地放置?”. 在这种情况下,您将需要参考GitHub上发布的代码和应用程​​序. 因此,我收集了似乎对Flu ...

  7. 《Python测试开发技术栈—巴哥职场进化记》—软件测试工程师“兵器库”

    上文<Python测试开发技术栈-巴哥职场进化记>-初来乍到,请多关照 我们介绍了巴哥入职后见到了自己的导师华哥,第一次参加团队站会,认识了团队中的开发小哥哥和产品小姐姐以及吃到了公司的加 ...

  8. HarmonyOS三方件开发指南(15)-LoadingView功能介绍

    目录: 1. LoadingView组件功能介绍2. Lottie使用方法3. Lottie开发实现4.<HarmonyOS三方件开发指南>系列文章合集 1. LoadingView组件功 ...

  9. Qt开发技术:图形视图框架(二)场景QGraphicsScene、QGraphicsItem与QGraphicsView详解

    前话   Qt的图形视图框架,最核心的三个类为:QGraphicsScene.QGraphicsItem与QGraphicsView.   基于图形框架的高级白板软件Demo QGraphicsSce ...

  10. WPF开发技术介绍

    本月做了一个小讲座,主要是WPF的开发技术介绍,由于是上班时间,去听的人不多,但对于自己来说至少是又巩固了Winform的知识,抽时间写一篇文章,在此分享给大家,有什么宝贵建议大家也可以提给我,谢谢. ...

随机推荐

  1. [转帖]mysql8.0的RPM方式安装

    https://www.cnblogs.com/asker009/p/15072354.html 1. 下载 https://dev.mysql.com/downloads/ 使用wget下载yum的 ...

  2. [转帖]Linux查看raid1和raid10分别由哪些盘组成,在哪个槽位

    查找有问题的盘 MegaCli64 -PDList -aALL |grep "Firmware state" 6个盘,2个坏了 查看raid级别和硬盘的状态 MegaCli64 - ...

  3. [转帖]计算机体系结构-重排序缓存ROB

    https://zhuanlan.zhihu.com/p/501631371 在现代处理器中,重排序缓存(Reorder Buffer,即ROB)是一个至关重要的概念,一个标准的乱序执行处理器在其多个 ...

  4. fio test 简单查看一些系统的io性能结果

    简单测试的脚本: echo "本次测试测试128k 16k 8k 1k 的 顺序读写 随机读写性能,每个脚本耗时约30s, 总计耗时大约8min左右完成: " fio -name= ...

  5. element-ui表格展开行每次只能展开一行

    element-ui表格展开行每次只能展开一行 <template> <el-table :data="tableData" :expand-row-keys=& ...

  6. 从Spring源码看Spring如何解决循环引用的问题

    Spring如何解决循环引用的问题 关于循环引用,首先说一个结论: Spring能够解决的情况为:两个对象都是单实例.且通过set方法进行注入. 两个对象都是单实例,通过构造方法进行注入,Spring ...

  7. 13.4 DirectX内部劫持绘制

    相对于外部绘图技术的不稳定性,内部绘制则显得更加流程与稳定,在Dx9环境中,函数EndScene是在绘制3D场景后,用于完成将最终的图像渲染到屏幕的一系列操作的函数.它会将缓冲区中的图像清空,设置视口 ...

  8. 7.2 C/C++ 实现动态链表

    动态链表是一种常用的动态数据结构,可以在运行时动态地申请内存空间来存储数据,相比于静态数组和静态链表,更加灵活和高效.在动态链表中,数据元素被组织成一条链表,每个元素包含了指向下一个元素的指针,这样就 ...

  9. 驱动开发:应用DeviceIoContro开发模板

    内核中执行代码后需要将结果动态显示给应用层的用户,DeviceIoControl 是直接发送控制代码到指定的设备驱动程序,使相应的移动设备以执行相应的操作的函数,如下代码是一个经典的驱动开发模板框架, ...

  10. C/C++ 实现获取Linux系统参数

    今天忙活了半天,在Linux平台下,总算可以获取到一些性能指标了,结果,Linux上面的数据发送到Windows上面会出现发送为空的现象,可能是Socket套接字存在问题,不搞了. #include ...