Qt 使用Installer Framework制作安装包

Qt 使用Installer Framework制作安装包

  • 引言
  • 一、下载安装 Qt Installer Framework
  • 二、简单使用
    • 2.1 创建目录结构 (文件夹结构)
    • 2.2 制作程序压缩包
    • 2.3 制作程序安装包

引言

Qt Installer Framework (安装程序框架)是一个强大的工具集,用于创建自定义的在线和离线安装程序。它具有高度可配置性和可自定义性,适用于所有支持的Qt平台:Linux、Windows和macOS。并且其提供了清晰的文档和示例,帮助开发人员为应用程序创建安装程序。

  • 本文以Windows为例,简述其制作一个软件安装包的步骤.

一、下载安装 Qt Installer Framework

官方下载地址:https://download.qt.io/official_releases/qt-installer-framework/
也可使用源码安装,可参考官方文档:https://doc.qt.io/qtinstallerframework/ifw-getting-started.html#building-from-sources

    1. 从官方下载的安装包,双击exe后无脑下一步即可
      在这里插入图片描述
    1. 配置环境变量
      在我的电脑上右键 > 属性 > 高级系统设置 > 环境变量 > 在Path中增加binarycreator.exe所在路径
      在这里插入图片描述
    1. 简单验证,在终端输入binarycreator.exe,显示如下图所示:
      在这里插入图片描述

二、简单使用

官方文档 Creating an Installer:https://doc.qt.io/qtinstallerframework/ifw-tutorial.html

2.1 创建目录结构 (文件夹结构)

    1. 创建相关目录以及配置文件,具体结构如下图所示:
      在这里插入图片描述
-config- config.xml
-packages- com.vendor.root- data- 程序压缩包 (包含可执行文件和依赖库等,支持7z, zip, tar.gz, tar.bz2 and tar.xz)- meta- 安装的软件模块说明 (package.xml等)

创建一个目录结构:比如创建一个目录叫InstallerTest。该目录必须包含名为configpackages的子目录。config下需包含config.xml配置文件。packages下可包含一个或多个程序 or 模块的目录 (安装时可选择安哪个),每个目录下又分为data (软件相关)和 meta(安装程序相关)

关于目录结构的说明可参考:
使用Qt Installer Framework制作软件安装包:https://www.cnblogs.com/xia-weiwen/p/6857333.html
官方说明文档 Package Directory:https://doc.qt.io/qtinstallerframework/ifw-component-description.html

    1. config.xml文件,其控制安装程序的欢迎安装文件夹开始菜单快捷方式等,如下图所示:
<?xml version="1.0" encoding="UTF-8"?>
<Installer><Name>软件名称</Name><Version>1.0.0</Version><Title>安装程序名称 - 会在安装程序的标题上显示</Title><Publisher>软件发布者</Publisher><StartMenuDir>在开始菜单中的默认目录名称</StartMenuDir><TargetDir>默认的安装目录</TargetDir>
</Installer>

在这里插入图片描述 在这里插入图片描述

还可以设置安装程序的颜色、Logo等
更多详细信息可参考:https://doc.qt.io/qtinstallerframework/ifw-globalconfig.html

    1. package.xml文件,其控制安装程序的选择组件许可协议等界面,如下图所示
<?xml version="1.0" encoding="UTF-8"?>
<Package><DisplayName>一个模块</DisplayName><Description>相关描述</Description><Version>1.0.0-1</Version><ReleaseDate>2024-07-01</ReleaseDate>
</Package>

在这里插入图片描述

还可以增加许可协议以及自定义UI界面
更多详细信息可参考:https://doc.qt.io/qtinstallerframework/ifw-component-description.html#package-information-file-syntax

2.2 制作程序压缩包

    1. 编译release版的程序,然后使用windeployqt复制相关库,如下图所示:
      在这里插入图片描述
    1. 压缩为7z, zip, tar.gz, tar.bz2 and tar.xz (可选)格式,放到相应的data目录下
      在这里插入图片描述

windeployqt的使用可参考:
Qt的windeployqt打包:https://blog.csdn.net/u014597198/article/details/77852483
Qt windeployqt.exe 打包qml:https://blog.51cto.com/u_15707179/6102502

2.3 制作程序安装包

完成上述准备工作之后,就可以执行命令制作安装包!

    1. 在对应的路径下执行binarycreator命令
      binarycreator -c config\config.xml -p packages MyInstaller.exe
      在这里插入图片描述
    1. 生成MyInstaller.exe,双击即可打开进行安装
      在这里插入图片描述
    1. 完结!

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

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

相关文章

【开发指南】HTML和JS编写多用户VR应用程序的框架

1.概述 Networked-Aframe 的工作原理是将实体及其组件同步到连接的用户。要连接到房间&#xff0c;您需要将networked-scene组件添加到a-scene元素。对于要同步的实体&#xff0c;请向其添加networked组件。默认情况下&#xff0c;position和rotation组件是同步的&#xff0c;…

未来的社交标杆:如何通过AI让Facebook更加智能化?

在当今信息爆炸的时代&#xff0c;社交媒体平台的智能化已成为提高用户体验和互动质量的关键因素。Facebook&#xff0c;作为全球最大的社交平台之一&#xff0c;通过人工智能&#xff08;AI&#xff09;的广泛应用&#xff0c;正不断推进其智能化进程。本文将探讨Facebook如何…

昇思25天学习打卡营第16天 | Vision Transformer图像分类

昇思25天学习打卡营第16天 | Vision Transformer图像分类 文章目录 昇思25天学习打卡营第16天 | Vision Transformer图像分类Vision Transform&#xff08;ViT&#xff09;模型TransformerAttention模块Encoder模块 ViT模型输入 模型构建Multi-Head Attention模块Encoder模块Pa…

工业三防平板助力工厂生产数据实时管理

在当今高度数字化和智能化的工业生产环境中&#xff0c;工业三防平板正逐渐成为工厂实现生产数据实时管理的得力助手。这种创新的技术设备不仅能够在恶劣的工业环境中稳定运行&#xff0c;还为工厂的生产流程优化、效率提升和质量控制带来了前所未有的机遇。 工业生产场景通常充…

机器学习——数据预处理和特征工程(sklearn)

目录 一、数据挖掘流程 1. 获取数据 2. 数据预处理 3. 特征工程 4. 建模&#xff0c;测试模型并预测出结果 5. 验证模型效果 二、sklearn中的相关包 1.sklearn.preprocessing 2.sklearn.Impute 3.sklearn.feature_selection 4.sklearn.decomposition 三、数据预处理…

【网络安全】PostMessage:分析JS实现XSS

未经许可&#xff0c;不得转载。 文章目录 前言示例正文 前言 PostMessage是一个用于在网页间安全地发送消息的浏览器 API。它允许不同的窗口&#xff08;例如&#xff0c;来自同一域名下的不同页面或者不同域名下的跨域页面&#xff09;进行通信&#xff0c;而无需通过服务器…

【Arduino IDE】安装及开发环境、ESP32库

一、Arduino IDE下载 二、Arduino IDE安装 三、ESP32库 四、Arduino-ESP32库配置 五、新建ESP32-S3N15R8工程文件 乐鑫官网 Arduino官方下载地址 Arduino官方社区 Arduino中文社区 一、Arduino IDE下载 ESP-IDF、MicroPython和Arduino是三种不同的开发框架&#xff0c;各自适…

定制开发AI智能名片商城微信小程序在私域流量池构建中的应用与策略

摘要 在数字经济蓬勃发展的今天&#xff0c;私域流量已成为企业竞争的新战场。定制开发AI智能名片商城微信小程序&#xff0c;作为私域流量池构建的创新工具&#xff0c;正以其独特的优势助力企业实现用户资源的深度挖掘与高效转化。本文深入探讨了定制开发AI智能名片商城微信…

AIoTedge智能物联网边缘计算平台:引领未来智能边缘技术

引言 随着物联网技术的飞速发展&#xff0c;我们正步入一个万物互联的时代。AIoTedge智能物联网边缘计算平台&#xff0c;以其创新的边云协同架构&#xff0c;为智能设备和系统提供了强大的数据处理和智能决策能力&#xff0c;开启了智能物联网的新篇章。 智能边缘计算平台的核…

LLaMA-Factory

文章目录 一、关于 LLaMA-Factory项目特色性能指标 二、如何使用1、安装 LLaMA Factory2、数据准备3、快速开始4、LLaMA Board 可视化微调5、构建 DockerCUDA 用户&#xff1a;昇腾 NPU 用户&#xff1a;不使用 Docker Compose 构建CUDA 用户&#xff1a;昇腾 NPU 用户&#xf…

【Java项目笔记】01项目介绍

一、技术框架 1.后端服务 Spring Boot为主体框架 Spring MVC为Web框架 MyBatis、MyBatis Plus为持久层框架&#xff0c;负责数据库的读写 阿里云短信服务 2.存储服务 MySql redis缓存数据 MinIO为对象存储&#xff0c;存储非结构化数据&#xff08;图片、视频、音频&a…

推荐一款处理TCP数据的架构--EasyTcp4Net

EasyTcp4Net是一个基于c# Pipe,ReadonlySequence的高性能Tcp通信库,旨在提供稳定,高效,可靠的tcp通讯服务。 基础的消息通讯 重试机制 超时机制 SSL加密通信支持 KeepAlive 流量背压控制 粘包和断包处理 (支持固定头处理,固定长度处理,固定字符处理) 日志支持Pipe &…

Spring MVC 的常用注解

RequestMapping 和 RestController注解 上面两个注解&#xff0c;是Spring MCV最常用的注解。 RequestMapping &#xff0c; 他是用来注册接口的路由映射。 路由映射&#xff1a;当一个用户访问url时&#xff0c;将用户的请求对应到某个方法或类的过程叫做路由映射。 Reques…

定制QCustomPlot 带有ListView的QCustomPlot 全网唯一份

定制QCustomPlot 带有ListView的QCustomPlot 文章目录 定制QCustomPlot 带有ListView的QCustomPlot摘要需求描述实现关键字: Qt、 QCustomPlot、 魔改、 定制、 控件 摘要 先上效果,是你想要的,再看下面的分解,顺便点赞搜藏一下;不是直接右上角。 QCustomPlot是一款…

基于springboot+vue+uniapp的驾校预约平台小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…

35.UART(通用异步收发传输器)-RS232(2)

&#xff08;1&#xff09;RS232接收模块visio框图&#xff1a; &#xff08;2&#xff09;接收模块Verilog代码编写: /* 常见波特率&#xff1a; 4800、9600、14400、115200 在系统时钟为50MHz时&#xff0c;对应计数为&#xff1a; (1/4800) * 10^9 /20 -1 10416 …

【作业】 贪心算法1

Tips:三题尚未完成。 #include <iostream> #include <algorithm> using namespace std; int a[110]; int main(){int n,r,sum0;cin>>n>>r;for(int i0;i<n;i){cin>>a[i];}sort(a0,an);for(int i0;i<n;i){if(i>r){a[i]a[i-r]a[i];}suma[…

大气热力学(8)——热力学图的应用之一(气象要素求解)

本篇文章源自我在 2021 年暑假自学大气物理相关知识时手写的笔记&#xff0c;现转化为电子版本以作存档。相较于手写笔记&#xff0c;电子版的部分内容有补充和修改。笔记内容大部分为公式的推导过程。 文章目录 8.1 复习斜 T-lnP 图上的几种线8.1.1 等温线和等压线8.1.2 干绝热…

连锁零售门店分析思路-人货场 数据分析

连锁零售门店分析思路 以下是一个连锁零售门店的分析思路&#xff1a; 一、市场与竞争分析 二、门店运营分析&#xff08;销售分析&#xff09; 三、销售与财务分析 四、客户分析 五、数字化与营销分析 最近帮一个大学生培训&#xff0c;就门店销售分析 &#xff0c;说到门店…

使用windows批量解压和布局ImageNet ISLVRC2012数据集

使用的系统是windows&#xff0c;找到的解压命令很多都linux系统中的&#xff0c;为了能在windows系统下使用&#xff0c;因此下载Git这个软件&#xff0c;在其中的Git Bash中使用以下命令&#xff0c;因为Git Bash集成了很多linux的命令&#xff0c;方便我们的使用。 ImageNe…