Qt 把.exe打包成安装文件形式

2024-04-26 08:28

本文主要是介绍Qt 把.exe打包成安装文件形式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 1.下载工具 Qt Installer Framework
  • 2.将`bin`文件添加到环境变量
  • 3.拷贝`startmenu`示例-备用
  • 4.准备Qt Release打包好的程序
  • 5.把Release打包好的程序放到`packages\org.qtproject.ifw.example\data`文件夹下
  • 6.生成安装包
  • 7.修改安装包图标
  • 8.修改主程序程序安装引导-创建快捷键
  • 9.添加驱动安装包
  • 10.嫌弃打包耗时太长?

Qt Installer Framework 使用

1.下载工具 Qt Installer Framework

官网下载链接
下载直接安装
在这里插入图片描述

2.将bin文件添加到环境变量

在这里插入图片描述

3.拷贝startmenu示例-备用

在这里插入图片描述

4.准备Qt Release打包好的程序

确保自己的.exe能够正常运行,没有缺少dll文件
在这里插入图片描述

5.把Release打包好的程序放到packages\org.qtproject.ifw.example\data文件夹下

在这里插入图片描述

6.生成安装包

回到startmenu目录下,打开CMD终端,执行指令

binarycreator --offline-only -c config/config.xml -p packages install.exe -v

脚本程序生成脚本.bat

@echo off
start cmd /k "binarycreator --offline-only -c config/config.xml -p packages install.exe -v"

在这里插入图片描述

在这里插入图片描述
不出意外,正常生成安装包,双击即可安装
在这里插入图片描述

7.修改安装包图标

在这里插入图片描述
startmenu\config文件夹下准备3张图片

在这里插入图片描述
修改startmenu\config\config.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<Installer><Name>软件名称</Name><!-- 软件名称 --><Version>0.1.3</Version><!-- 版本号 --><Title>安装程序窗口标题</Title><!-- 安装程序窗口标题 --><Publisher>公司名称</Publisher><!-- 公司名称 --><!-- Directory name is used in component.xml --><StartMenuDir>Ancel IR</StartMenuDir><!-- 要生成的windows开始菜单目录 --><TargetDir>@HomeDir@/APPPath</TargetDir><!-- 默认安装路径 --><Logo>logo.png</Logo><InstallerApplicationIcon>app</InstallerApplicationIcon><!-- app.ico,但是不要ico后缀 --><InstallerWindowIcon>app.png</InstallerWindowIcon>
</Installer>

重新生成后,安装过程中引导语,图标就是我们自定义的了
在这里插入图片描述
在这里插入图片描述

8.修改主程序程序安装引导-创建快捷键

修改文件packages\org.qtproject.ifw.example\meta\package.xml

<?xml version="1.0" encoding="UTF-8"?>
<Package><DisplayName>主程序</DisplayName><Description>主程序描述.</Description><Version>1.0.0-1</Version><ReleaseDate>2013-01-01</ReleaseDate><Default>true</Default><Script>installscript.qs</Script>
</Package>

在这里插入图片描述
创建快捷键
修改文件packages\org.qtproject.ifw.example\meta\installscript.qs

function Component()
{// default constructor
}Component.prototype.createOperations = function()
{component.createOperations();//开始菜单的快捷方式component.addOperation("CreateShortcut","@TargetDir@\\debug.exe","@StartMenuDir@\\debug.lnk","workingDirectory=@TargetDir@","description=Open Application");//桌面快捷方式component.addOperation("CreateShortcut","@TargetDir@\\debug.exe","@DesktopDir@\\debug.lnk","workingDirectory=@TargetDir@","description=Open Application");
}

在这里插入图片描述

9.添加驱动安装包

这里以安装CH340串口驱动为例
把原来的org.qtproject.ifw.example拷贝一份,重命名为driver
在这里插入图片描述
把ch340驱动程序放到packages\driver\data目录下
在这里插入图片描述
在这里插入图片描述
修改文件packages\driver\meta\installscript.qs

function Component()
{// default constructor
}Component.prototype.createOperations = function()
{component.createOperations();if (systemInfo.productType === "windows"){component.addElevatedOperation("Execute", "{0,1,256}", "@TargetDir@\\CH341SER_2.EXE");component.addElevatedOperation("Delete", "@TargetDir@\\CH341SER_2.EXE");}}

修改文件packages\driver\meta\package.xml

<?xml version="1.0" encoding="UTF-8"?>
<Package><DisplayName>CH340驱动</DisplayName><Description>CH340驱动描述</Description><Version>1.0.0-1</Version><ReleaseDate>2013-01-01</ReleaseDate><Default>true</Default><Script>installscript.qs</Script><RequiresAdminRights>true</RequiresAdminRights> <!-- 代表用管理员权限安装这个组件 -->
</Package>

安装的过程就会自动弹出CH340安装请求
在这里插入图片描述

10.嫌弃打包耗时太长?

全选所有文件,右键,然后压缩成data.7z
不要创建 data 文件夹,再压缩
在这里插入图片描述
最后得效果是这样
在这里插入图片描述
如果有驱动,也一样压缩成.7z
在这里插入图片描述
在这里插入图片描述
再次执行生成安装包指令,2s就能出来install.exe安装包

这篇关于Qt 把.exe打包成安装文件形式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/937079

相关文章

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

Qt中QGroupBox控件的实现

《Qt中QGroupBox控件的实现》QGroupBox是Qt框架中一个非常有用的控件,它主要用于组织和管理一组相关的控件,本文主要介绍了Qt中QGroupBox控件的实现,具有一定的参考价值,感兴趣... 目录引言一、基本属性二、常用方法2.1 构造函数 2.2 设置标题2.3 设置复选框模式2.4 是否

QT进行CSV文件初始化与读写操作

《QT进行CSV文件初始化与读写操作》这篇文章主要为大家详细介绍了在QT环境中如何进行CSV文件的初始化、写入和读取操作,本文为大家整理了相关的操作的多种方法,希望对大家有所帮助... 目录前言一、CSV文件初始化二、CSV写入三、CSV读取四、QT 逐行读取csv文件五、Qt如何将数据保存成CSV文件前言

Qt中QUndoView控件的具体使用

《Qt中QUndoView控件的具体使用》QUndoView是Qt框架中用于可视化显示QUndoStack内容的控件,本文主要介绍了Qt中QUndoView控件的具体使用,具有一定的参考价值,感兴趣的... 目录引言一、QUndoView 的用途二、工作原理三、 如何与 QUnDOStack 配合使用四、自

Qt spdlog日志模块的使用详解

《Qtspdlog日志模块的使用详解》在Qt应用程序开发中,良好的日志系统至关重要,本文将介绍如何使用spdlog1.5.0创建满足以下要求的日志系统,感兴趣的朋友一起看看吧... 目录版本摘要例子logmanager.cpp文件main.cpp文件版本spdlog版本:1.5.0采用1.5.0版本主要

PyInstaller打包selenium-wire过程中常见问题和解决指南

《PyInstaller打包selenium-wire过程中常见问题和解决指南》常用的打包工具PyInstaller能将Python项目打包成单个可执行文件,但也会因为兼容性问题和路径管理而出现各种运... 目录前言1. 背景2. 可能遇到的问题概述3. PyInstaller 打包步骤及参数配置4. 依赖

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte

Qt 中 isHidden 和 isVisible 的区别与使用小结

《Qt中isHidden和isVisible的区别与使用小结》Qt中的isHidden()和isVisible()方法都用于查询组件显示或隐藏状态,然而,它们有很大的区别,了解它们对于正确操... 目录1. 基础概念2. 区别清见3. 实际案例4. 注意事项5. 总结1. 基础概念Qt 中的 isHidd