Qt 制作安装包

news2024/9/22 4:20:14

记录使用Qt工具制作一个安装包的过程

目录

1.准备工作

1.1检查Qt Installer Frameworks是否安装

1.2.安装Qt Installer Frameworks

1.3准备release出来的exe dll等文件

2.创建打包工程所需要的文件及目录

2.1创建子目录

2.2 创建工程文件

2.3 创建config/config.xml

2.4 创建packages/qWidget/meta/config.xml

2.5 创建packages/qWidget/meta/installscript.qs

2.6 创建packages/qWidget/meta/license.txt

3.拷贝需要打包的文件

4.使用Qt Creator编译生成安装程序

5. 安装、卸载、运行测试


1.准备工作

1.1检查Qt Installer Frameworks是否安装

Qt的安装路径下查找,比如D:\Qt\Tools\QtInstallerFramework 

不存在该目录就需要安装

1.2.安装Qt Installer Frameworks

找到D:\Qt\MaintenanceTool.exe,运行,选择QtInstallerFramework 安装

1.3准备release出来的exe dll等文件

如何生成release文件已经在这里

Qt 使用发布工具 windeployqt 来releaseicon-default.png?t=N7T8https://blog.csdn.net/castlooo/article/details/140473263

2.创建打包工程所需要的文件及目录

创建打包工程目录比如,用来构建打包工程所需要的目录结构

2.1创建子目录

InstallerExample/config  

InstallerExample/packages

InstallerExample/packages/qWidget

InstallerExample/packages/qWidget/data

InstallerExample/packages/qWidget/meta

2.2 创建工程文件

InstallerExample/qWidgetInstaller.pro

记事本编辑工程文件如下

TEMPLATE = aux
INSTALLER = qWidgetInstaller    #生成的安装文件名称  qWidgetInstaller.exe
INPUT = $$PWD/config/config.xml $$PWD/packages #$$PWD  pro所在的目录
demo.input = INPUT
demo.output = $$INSTALLER
demo.commands =binarycreator -c $$PWD/config/config.xml -p $$PWD/packages ${QMAKE_FILE_OUT}
demo.CONFIG += target_predeps no_link combine
QMAKE_EXTRA_COMPILERS += demo

2.3 创建config/config.xml

<?xml version="1.0" encoding="UTF-8"?>
<Installer>
	<Name>qWidget</Name>
	<Version>1.0.0</Version>
	<Title>qWidget Created by Qt 6</Title>
	<Publisher>CC</Publisher>
	<StartMenuDir>qWidget</StartMenuDir>
        <TargetDir>@HomeDir@/qWidget</TargetDir>
	<CreateLocalRepository>true</CreateLocalRepository>
	<WizardStyle>Aero</WizardStyle>
	<WizardShowPageList>true</WizardShowPageList>
	<WizardDefaultWidth>650</WizardDefaultWidth>
	<WizardDefaultHeight>430</WizardDefaultHeight>
</Installer>

2.4 创建packages/qWidget/meta/config.xml

<?xml version="1.0"?>
<Package>
<DisplayName>qWidget</DisplayName>
<Description>qWidget</Description>
<Version>1.0.0</Version>
<ReleaseDate>2024-07-17</ReleaseDate>
<Licenses>
<License name="GNU Public License Agreement" file="license.txt" />
</Licenses>
<ForcedInstallation>true</ForcedInstallation>
<Script>installscript.qs</Script>
</Package>

2.5 创建packages/qWidget/meta/installscript.qs

function Component()
{
    // default constructor
}

Component.prototype.createOperations = function()
{
    // call default implementation to actually install qWidgets.exe!
    component.createOperations();

    if (systemInfo.productType === "windows") {
        component.addOperation("CreateShortcut", "@TargetDir@\\qWidgets.exe", "@StartMenuDir@\\qWidget.lnk",
            "workingDirectory=@TargetDir@");
		
        component.addOperation("CreateShortcut", "@TargetDir@\\qWidgets.exe", "@DesktopDir@\\qWidget.lnk",
            "workingDirectory=@TargetDir@");
    }
}

2.6 创建packages/qWidget/meta/license.txt

本软件采用Qt 6.7开源版本开发,遵循Qt开源版本使用的GPL v2/v3和LPGL v3等许可协议。本软件可以自由复制和分发,但需要遵守相应的开源许可协议。

3.拷贝需要打包的文件

将需要打包的release文件 exe dll等拷贝到目录packages/qWidget/meta

4.使用Qt Creator编译生成安装程序

使用Qt Creator打开工程qWidgetInstaller.pro,点击构建项目按钮,查看编译输出结果,编译的结果较为缓慢一些

5. 安装、卸载、运行测试

将生成的安装程序,安装、卸载、运行测试一遍是否问题

生成的桌面图标如下,点击运行正常

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

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

相关文章

5.4 软件工程-系统设计

系统设计 - 概述 设计软件系统总体结构 数据结构及数据库设计 编写概要设计文档、评审 详细设计的基本任务 真题

HDU1011——Starship Troopers(树形DP),HDU1012——u Calculate e,HDU1013——Digital Roots

目录 HDU1011——Starship Troopers&#xff08;树形DP&#xff09; 题目描述 运行代码 代码思路 树形DP HDU1012——u Calculate e 题目描述 运行代码 代码思路 HDU1013——Digital Roots 题目描述 超时代码 改进后依旧超时代码 运行代码 代码思路 HDU1011——…

工时记录软件选型指南

国内外主流的10款工时计算软件对比&#xff1a;PingCode、Worktile、Tita、易企秀、奇鱼、Teambition、Timely、Toggl Track、RescueTime、ClickUp。 在忙碌的工作中&#xff0c;记录和管理工时常常是令人头疼的问题。工时记录软件的选择不仅能帮你省时省力&#xff0c;还能大幅…

视频素材网站无水印的有哪些?热门视频素材网站分享

当我们走进视频创作的精彩世界时&#xff0c;一个难题常常摆在面前——那些高品质、无水印的视频素材究竟应该在哪里寻找&#xff1f;许多视频创作者感叹&#xff0c;寻找理想的视频素材难度甚至超过了寻找伴侣&#xff01;但不用担心&#xff0c;今天我将为您介绍几个优质的视…

理解UI设计:UI设计师的未来发展机遇

UI设计师的出现是互联网时代的设计变革。随着移动互联网的快速发展&#xff0c;移动产品设计师非常短缺。高薪资让许多其他行业的设计师已经转向了UI设计。那么什么是UI设计呢&#xff1f;UI设计师负责什么&#xff1f;UI设计的发展趋势和就业前景如何&#xff1f;这些都是许多…

C++仓库管理系统

功能 代码在效果图后面 1.添加物品 2.删除物品 3.更新物品数量 4.查询物品 5.列出所有物品 6.保存并退出 注意事项&#xff1a;退出要输入“6”退出才能保存数据&#xff0c;不要直接按X关掉窗口&#xff08;不会保存数据&#xff09;。 效果图 源代码 编…

C语言 底层逻辑详细阐述指针(一)万字讲解 #指针是什么? #指针和指针类型 #指针的解引用 #野指针 #指针的运算 #指针和数组 #二级指针 #指针数组

文章目录 前言 序1&#xff1a;什么是内存&#xff1f; 序2&#xff1a;地址是怎么产生的&#xff1f; 一、指针是什么 1、指针变量的创建及其意义&#xff1a; 2、指针变量的大小 二、指针的解引用 三、指针类型存在的意义 四、野指针 1、什么是野指针 2、野指针的成因 a、指…

Unity客户端接入原生Google支付

Unity客户端接入原生Google支付 1. Google后台配置2. 开始接入Java部分C#部分Lua部分 3. 导出工程打包测试参考踩坑注意 1. Google后台配置 找到内部测试&#xff08;这个测试轨道过审最快&#xff09;&#xff0c;打包上传&#xff0c;这个包不需要接入支付&#xff0c;如果已…

机器人开源调度系统OpenTcs6-架构运行分析

系统启动 启动 Kernel&#xff1a;加载核心应用&#xff0c;初始化系统配置和状态。 启动 Plant Overview&#xff1a;加载图形用户界面&#xff0c;初始化模型和用户界面。 模型导入和配置 在 Plant Overview 中导入或创建工厂布局模型。 配置路径、位置和车辆信息。 车辆连…

用DrissionPage过某里滑块分析

最近我又在找工作了&#xff0c;悲哀啊~&#xff0c;面试官给了一道题&#xff0c;要求如下&#xff1a; 爬虫机试&#xff1a;https://detail.1688.com/offer/643272204627.html 过该链接的滑动验证码&#xff0c;拿到正确的商品信息页html&#xff0c;提取出商品维度的信息&a…

排序一次讲清(从冒泡到基数)

文章目录 冒泡原理代码pythonc 选择原理代码pythonc 插入原理代码pythonc 希尔原理代码pythonc 快排原理代码pythonc 归并原理代码pythonc 堆原理代码pythonc 计数原理代码pythonc 桶原理代码pythonc 基数原理代码pythonc 【待更新】 冒泡 原理 如果我们想要让数组从左至右从…

海豚调度器(DolphinScheduler)集群搭建详细笔记

海豚调度器集群搭建笔记 1.DolphinScheduler Cluster部署1.1 集群部署规划1.2 集群准备工作1.3 初始化数据库1.4 修改安装环境配置1.5 安装DolphinScheduler1.6 启停命令1.7 登录 DolphinScheduler UI 1.DolphinScheduler Cluster部署 分布式去中心化易扩展的工作流任务调度系…

【最强八股文 -- 计算机网络】TCP 四次挥手的过程及原因

第一次挥手&#xff1a;FIN 报文第二次挥手&#xff1a;ACK 报文第三次挥手&#xff1a;FIN 报文第四次挥手&#xff1a;ACK 报文 为什么需要四次挥手&#xff1f; 为什么需要 TIME_WAIT 状态&#xff1f; TIME_WAIT 的时间为什么是 2MSL&#xff1f;

springboot服务如何执行sql脚本文件

当sql脚本文件包含不同数据库实例sql时&#xff0c;遍历读取sql文件再插入时&#xff0c;由于是不同的数据库实例这种方式就不行了&#xff0c;这时就需要程序直接执行sql脚本。 springboot执行sql脚本 /*** 执行sql脚本* throws SQLException*/ private void executeSqlScri…

go-zero框架入门

go-zero框架环境的安装 goctl 若想用go-zero框架&#xff0c;还需要一些前置条件&#xff1a; 安装goctl go install github.com/zeromicro/go-zero/tools/goctllatest可以使用 goctl 命令查看是否安装成功 成功后安装protoc goctl env check --install --verbose --force…

重生奇迹MU 三代翅膀行情

在重生奇迹MU游戏中&#xff0c;达到400级以上的玩家都知道&#xff0c;重生奇迹大陆拍卖行里最值钱的物品是翅膀。翅膀可以分为一代、二代和三代翅膀&#xff0c;而其中价格最高的则是三代翅膀。有时候&#xff0c;三代翅膀的售价非常之高&#xff0c;甚至有市无价。这是因为三…

[论文笔记] CT数据配比方法论——1、Motivation

我正在写这方面的论文,感兴趣的可以和我一起讨论!!!!!! Motivation 1、探测原有模型的配比: 配比 与 ppl, loss, bpw, benchmark等指标 之间的关系。 2、效果稳定的配比:配比 与 模型效果 之间的规律。 Experiments 1、主语言(什么语言作为主语言,几种主语言?…

PyTorch 深度学习实践-逻辑斯蒂回归

视频指路 参考博客笔记 参考笔记二 用来分类的模型 说明&#xff1a;1、 逻辑斯蒂回归和线性模型的明显区别是在线性模型的后面&#xff0c;添加了激活函数(非线性变换) ​ 2、分布的差异&#xff1a;KL散度&#xff0c;cross-entropy交叉熵 现在损失函数衡量不是距离而是分布…

Jmeter性能测试(九)

一、Jmeter性能测试需要特别注意的地方 1、参数化 2、请求参数 3、BeanShell 预处理程序更新jmeter请求参数 4、接口中不可重复的随机数处理 5、线程组设置 6、总结 二、参数化 1、参数化配置,多个参数用英文逗号隔开 2、wallet参数化文件,不要写表头,多个参数用英文逗号…

【YOLOv8改进[Conv]】KAN系列 |使用KACNConv改进C2f + 含全部代码和详细修改方式 + 手撕结构图

本文将进行在YOLOv8中使用KACNConv改进C2f 的实践,助力YOLOv8目标检测效果,文中含全部代码、详细修改方式以及手撕结构图。助您轻松理解改进的方法。训练速度会慢一些,要有心理准备哈! 改进前和改进后的参数对比: 目录