<QT开发> QT开发工具-之-QT应用程序打包

<QT开发> QT开发工具-之-QT应用程序打包

一 前言

笔者为什么会写这篇文章呢?这是因为,笔者使用windows QT开发了一个测试工具。目的是通过TCP/IP测试其它应用程序。首先这个QT程序是笔者自己开发的,所以笔者的电脑当然是可以运行这个QT程序的,但是想要这个QT程序在其它同事的电脑上运行怎么办?他的电脑又没有安装QT程序;而且也没必要直接给QT源码。 所以就产生了一个需求:如何将编译后的QT程序打包成单独的exe执行文件,然后这个单独的exe文件,就可以再其它没有安装QT的电脑上运行了。

基于上述要求,我们以一个简单的QT程序为例,讲解如何打包执行文件。

QT安装可参考笔者另一篇文章:<QT开发> QT开发工具-之-QT安装

二 新建测试QT工程

2.1 新建QT工程

在电脑桌面新建文件夹“QT_TEST”,如下图:
在这里插入图片描述

打开开始菜单,选择QT,现在已安装的“Qt Creator”;笔者安装的是“Qt Creator 9.0.2”,所以就选择这个了。
在这里插入图片描述
打开后界面如下:
在这里插入图片描述
点击 :创建项目 ,参考下图笔者选择即可,如果有其他要求可自行创建。
在这里插入图片描述
输入项目名称可存储路径,笔者这里就存在前面桌面创建的QT_TEST目录中,如下图:
在这里插入图片描述
选择qmake编译程序,当然读者有要求也可以选用cmake等,如下图:
在这里插入图片描述
生成模板程序的,主界面类名称和文件名等的设置,这些都是用默认的名称即可,如下图:
在这里插入图片描述
选择是否翻译的语言,这里就选“无”,有要求的读者,可自行选择。如下图:
在这里插入图片描述
选择编译使用的kit工具,笔者选择6.2.4 64bit 如下图,按需选择即可;
在这里插入图片描述

项目管理配置,默认选择“无”即可,如下图:

在这里插入图片描述

点击完成后,就会自动打开前面配置的QT工程了,如下图:
在这里插入图片描述

2.2 添加UI

在2.1小节打开的界面中,双击“mainwindow.ui”这个文件,就会进入UI编辑界面,如下图:
在这里插入图片描述
将左侧的控件,拖拽到右侧空白区域,读者可自行选择,笔者操作如下图:
在这里插入图片描述
至此我们的QT测试例程准备完毕。

三 编译QT

要想打包程序,那么得先将QT程序编译成可执行文件;编译分“Debug”和“Release”两个版本;对于需要打包的程序来说,一般都是编译Release版本。

QT界面左下方,可选择编译的版本,选择“Release”,如下图:
在这里插入图片描述
选择"Release"完成后,就可点击下方的编译按键,进行编译,如下图:
在这里插入图片描述
有弹框保存,点击“Save All”即可,如下图:
在这里插入图片描述
等待编译完成后会显示程序界面,如下图:
在这里插入图片描述
同时,在存放工程的路径下会生成编译的数据文件,如下图:
在这里插入图片描述

四 打包QT执行文件

4.1 准备构建QT执行文件

首先,在xxx/Desktop\QT_TEST 目录下新建一个文件夹,名为“APP”,如下图:
在这里插入图片描述

将Release输出目录下的执行文件复制到APP文件夹中,如下图:

在这里插入图片描述

在这里插入图片描述
这时如果单独运行“QT_TEST.exe”,是会提示错误的,找不到对应的依赖文件库等;如下图:
在这里插入图片描述
这时就是要使用QT自带的windeployqt 工具,来生成依赖的文件。

4.2 使用windeployqt 构建QT执行文件依赖库

打开QT commend,如下图:
注意:这里选择的cmd 要与 构建QT的kit版本保持一致。笔者用的是"MinGW 64 bit"
在这里插入图片描述
打开后如下图:
在这里插入图片描述
输入以下命令切换到APP目录下:

G:\WorkSoft\QT6.2\6.2.4\mingw_64>C:                                                                                                                                                                                                             C:\Windows\System32>CD ../..                                                                                                                                                                                                                    C:\>cd Users\XX\Desktop\QT_TEST\APP                                                                                                                                                                                                             C:\Users\XX\Desktop\QT_TEST\APP> 

在这里插入图片描述

使用windeployqt 工程,生成关联的QT库文件到当前目录下,命令如下:

windeployqt  QT_TEST.exe

在这里插入图片描述
执行完成后,会生成一些依赖文件,如下图:
在这里插入图片描述
此时双击“QT_TEST.exe”,即可运行该QT程序,如下图:
在这里插入图片描述
但是这样是就有一个比较麻烦的地方,就是如果需要把这个“QT_TEST.exe”给到其它人,那么其所依赖的文件也要一起给出才行,这样就显得有些拖泥带水了。
为了方便,我们需要将“QT_TEST.exe” 包括“APP“文件夹下 的整个内容打包成一个.exe文件,这样单独的一个执行文件就可直接运行了。

4.3 使用Enigma Virtual Box工具打包QT执行文件

下载Enigma Virtual Box,该软件是免费的,下载地址:官网
打开后,选择”Enigma Virtual Box“的”Download“下载安装包。笔者已下载的安装包【Enigma Virtual Box】如下图:
在这里插入图片描述
安装完成后打开该软件,如下图:
在这里插入图片描述
在这里插入图片描述
根据下图选择,并配置:
在这里插入图片描述
①:找到对应的执行文件QT_TEST.exe,如下图:
在这里插入图片描述
②:在①选择完成的基础上会默认一个输出路径,也可手动修改输出路径,笔者设置如下图:
在这里插入图片描述

③:添加打包文件,选择APP文件夹
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
④:选择”Compress files“ 压缩文件,如下图:
在这里插入图片描述
⑤:点击”Precess“,等待打包完成即可,如下图:
在这里插入图片描述
在这里插入图片描述
打包完成后点击”Close“关闭即可,也可直接点击”Run“运行验证。

五 运行验证

打开QT_TEST文件夹,如下:
在这里插入图片描述
双击”QT_TEST_boxed.exe“运行:
在这里插入图片描述
验证可知,打包后的执行文件”QT_TEST_boxed.exe“可单独运行;

后续就可以将”QT_TEST_boxed.exe“传给其它PC运行,而不用关注运行依赖库了。

六 总结

本文主要是讲解QT程序打包步骤,方便QT执行文件的发布使用,如果不足,欢迎沟通交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/9670.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数学建模】国赛真题分析 2012 A题 葡萄酒的评价

2012 A题 葡萄酒的评价 优秀论文地址: 链接:https://pan.baidu.com/s/19WGpybgM6RncxTYhx61JRA?pwdvl22 提取码:vl22 –来自百度网盘超级会员V6的分享 确定葡萄酒质量时一般是通过聘请一批有资质的评酒员进行品评。每个评酒员在对葡萄酒进…

万能的微信小程序个人主页:商城系统个人主页、外卖系统个人主页、购票系统个人主页等等【全部源代码分享+页面效果展示+直接复制粘贴编译即可】

前言 以下给出来四个常见的小程序个人主页,分别是商城系统个人主页,外卖系统个人主页,挂号系统个人主页,电影购票系统个人主页。包括完整的页面布局代码,完整的样式代码。使用的时候,只需要将页面代码和样式代码复制到自己项目对应的页面即可。而且可以根据已有代码只需稍…

【Go】Go 语言教程--语言变量(五)

往期教程: Go 语言教程–介绍(一)Go 语言教程–语言结构(二)Go 语言教程–语言结构(三)Go 语言教程–数据类型(四) 文章目录 变量声明多变量声明值类型和引用类型简短形…

Scala特证/特质【6.7 特质(Trait)】

Scala特证/特质【6.7 特质(Trait)】 6.7 特质(Trait)Java 的接口接口的作用抽象类的作用 6.7.1 特质声明6.7.2 特质基本语法6.7.3 特质叠加6.7.4 特质叠加执行顺序6.7.5 特质自身类型6.7.6 特质和抽象类的区别 (任意内…

新颖的文档、视频交互方式:以《GPT API Unofficial Docs》和《渐构》为例

一、背景 无意中看到一份 《GPT API 非官方文档》:https://gpt.pomb.us/ 被网站的交互方式所吸引,颇为新颖,值得借鉴。 左侧是对应的 API 代码调用示例,右侧是文档的每个部分,滑动到对应部分,左侧相关的代…

【UnityDOTS 十一】SharedComponent介绍

SharedComponent介绍 SharedComponent内存图 共享组件的值数组在单独的SharedComponentDataArrary中。每个Chunk中有一个单独的Handle指向这个值。 所以这个Chunk中放的不只是ArcheType相同的Entity,他们所指向的ShareComponent值也是相同的。 同时修改一个Entity…

PostgreSQL如何根据执行计划进行性能调优?

EXPLAIN命令 PG中EXPLAIN命令语法格式如下: EXPLAIN [(option[,...])] statement EXPLAIN [ANALYZE] [VERBOSE] statement该命令的options如下: ANALYZE [boolean]VERBOSE [boolean]COSTS [boolean]BUFFERS [boolean]FORMAT {TEXT | XML | JSON | YAM…

20.BeautifulSoup库的安装及导入

文章目录 1.BeautifulSoup库简介2.BeautifulSoup库的安装3.BeautifulSoup和beautifulsoup4的区别4.获取网页源代码知识回顾4.1 手动获取网页的源代码4.2 requests库获取网页的源代码 5. 利用bs4库输出网页源代码6.bs4库的导入语法 1.BeautifulSoup库简介 BeautifulSoup库是Pyt…

【机器学习】机器故障的二元分类模型-Kaggle竞赛

竞赛介绍 数据集描述 本次竞赛的数据集(训练和测试)是从根据机器故障预测训练的深度学习模型生成的。特征分布与原始分布接近,但不完全相同。随意使用原始数据集作为本次竞赛的一部分,既可以探索差异,也可以了解在训…

Vue中的el-date-picker时间选择器的使用

1、value-format属性设置需要什么格式的时间 2、type类型选择datetime、date 年月日时分秒 <el-date-pickervalue-format"yyyy-MM-dd HH:mm:ss"v-model"excelRuleForm.startTime"type"datetime":placeholder"选择开始时间"> &…

Web3 处理智能合约部署到本地区块链,并在本地进行测试

上文 Web3 在Truffle项目中编写出自己的第一个solidity智能合约我们演示了 在Truffle环境下写一个智能合约并编译的功能 编译出的文件夹中的这个JSON就非常重要了 我们就可以通过 它这个ABI链接到需要的智能合约程序上去 但这也仅仅是编译完了 我们的智能合约还没有部署到我们…

SpringBoot--超时熔断器

需求背景 如果一个服务中有很多涉及需要服务间熔断的地方&#xff0c;就会出现N多下述代码&#xff1a; 1.N个fegnClient接口 FeignClient(name "hello-world-service", fallback HelloWorldFallback.class) public interface HelloWorldService {GetMapping(&q…