QT window Qt在制作压缩包 ,制作.run生成器

文章介绍了如何使用QZipWriter在Linux环境下制作压缩包,并生成.run可执行文件。在生成.run文件时遇到了回车字符(^M)导致的运行错误,通过调整文件打开模式解决了此问题。同时,文章讨论了如何在.run文件末尾添加压缩包内容。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

最近做项目,需要给客户写一个软件,需求:选中文件夹后,将文件夹做成一个压缩包,然后在生成一个run的文件,并且可以在下位机中(linux板卡)运行。
类似于图片中的形式,上面是脚本,下面是一个压缩包;
在这里插入图片描述

开始之前理想中的难点:
1.怎做一个压缩包。
2.怎么生成点.run文件

一、.run是什么?

后缀名为.run的文件一般为Linux应用软件的安装文件,类似Windows系统上的.exe文件,故可以将其看成Linux系统的可执行文件,可以通过Linux系统的命令行终端进行打开。

二、使用步骤

1.制作一个压缩包

制作压缩包我们用的是QZipWriter来实现
(1)头文件
这两个头文件,一个是压缩头文件,一个解压头文件在这里插入图片描述
(2).pro文件中添加模块
在.pro文件中添加模块gui-private
(3).cpp代码片段
获取文件夹路径,QZipWrite *writer = new QZipWriter(zipUrl);zipUrl应该是压缩包存储的路径+压缩包的名称。
例:“D:/Users/Administrator/Desktop/img/img.zip”
参考文章:https://blog.csdn.net/weixin_43246170/article/details/124295516
这篇文章感觉写的非常好,比较简单实用,适合初学者门观看,需要注意的是new QZipWriter的时候的路径,我在这里研究了好长时间,刚开始的时候没有加压缩包名称,每次执行完都没看到压缩包。在这里插入图片描述

2.生成一个.run文件

以前在linux环境下做一个.run文件很简单,用"echo"和"cat"就可以了。在windows环境下是没有办法用shell命令的。
在这里遇到两个难题:
1.生成的文件在下位机(板卡)中打开的时候带有^M的回车字符,在使用./*.run的时候就会报错,
这里有一种方法可以解决这个问题,使用bash *.run可以正常运行;
原因是我在打开文件的时候,用 if(!file.open(QFile::ReadWrite|QFile::Text)),然后用QTextStream写到文件里;问题在QFile::Text这里和QTextStream
在这里插入图片描述
解决方法:直接用if(!file.open(QIODevice::ReadWrite));打开文件
然后用file.write(QByteArray);写入文件当中;
2.将做成的压缩包添加到.run文件的末尾;在这里犯了和上一点一样错误;用 if(!file.open(QFile::ReadWrite|QFile::Text)),然后用QTextStream写到文件里;
解决方法:也是和上一点一样;不累赘了。直接上代码;
在这里插入图片描述

总结

第一次写这样的文章,尽量用白话文讲述清楚。
这里面参考了很多博客博主的文章,感谢各位博主们的文章。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值