【Qt打包】Qt打包生成可安装exe文件

news2024/11/24 12:08:18

第三方打包 gitee 项目地址:https://gitee.com/hudejie/universal-software-installation-package
纯净包备份(v0.1):https://download.csdn.net/download/weixin_45863921/88720027

1 项目介绍

作者项目介绍:
基于NSIS-UI-Plugin的通用软件安装包是一个创新的解决方案,结合了NSIS和Qt两大技术力量。NSIS,一个功能强大的软件安装程序生成工具,负责执行软件的安装、卸载、写入注册表、创建快捷方式等实际操作。而Qt,一个跨平台的C++图形用户界面应用程序开发框架,则主要用于构建具有高度交互性和视觉吸引力的用户界面。
这个方案的关键优势在于其灵活性。传统的NSIS安装界面通常比较固定且不注重用户体验,而通过结合Qt,我们能够摆脱这种限制,为软件安装包带来无限的可能性。Qt的强大功能和灵活性使我们能够创建出美观、高效且高度定制化的界面效果,从而大大提升了用户的安装体验。
通过使用Qt,我们可以实现更加现代化的安装界面设计,提供更丰富的交互元素,如动态加载效果、个性化的主题和布局等。此外,Qt还提供了丰富的API和控件,使得我们可以轻松地实现各种复杂的功能,如多语言支持、动态更新和自定义动作等。
这种结合不仅提高了软件安装的效率和用户体验,同时也为开发者提供了一个强大的工具,使他们能够根据具体需求进行高度定制,打造出真正符合品牌形象和用户需求的软件安装包。总体而言,基于NSIS-UI-Plugin的通用软件安装包是一个集功能、美观和定制化于一体的解决方案,为软件分发和用户体验树立了新的标准。

个人理解:通过别人写好的脚本,帮我们做一个打包的程序出来,节省我们的时间。

2 使用教程

2.1 在 QtCreator 中编译 Release 项目

注意一定是 release 版本的项目,如果是 debug 版本的可能会不通过

image.png

2.2 将本地 Release 文件夹中所有文件拷贝到 File 文件夹

recording.gif

2.3 修改setup.ini文件内容

注意这一步一定要把一些要修改的内容改成我们的东西
最重要的是 exe 文件的名字,因为 File 文件夹中本身有一个 exe 文件,如果不改,默认是打包的他的默认程序嗷

[main]
EXE_NAME="HUI.exe"                                      ; 程序名称
PRODUCT_NAME="HUI"                                      ; 项目名称
EXE_RELATIVE_PATH="HUI.exe"                             ; 程序实际相对路径
PRODUCT_VERSION="1.0.0.1"                               ; 版本号
PRODUCT_PUBLISHER="HUI"                                 ; 发布者
PRODUCT_LEGAL=
    "Copyright (C) 1999-2024 HUI, All Rights Reserved"  ; 合法信息
INSTALL_ICON_PATH="hui.ico"                             ; 安装程序图标
UNINSTALL_ICON_PATH="uninst.ico"                        ; 卸载程序图标
PRODUCT_LICENSES="licenses.html"                        ; 许可协议文件
DEFAULT_INSTALL_DIR="$PROGRAMFILES\${PRODUCT_NAME}"     ; 默认安装路径 32位系统默认安装路径($PROGRAMFILES\${PRODUCT_NAME}) 64位系统默认安装路径($PROGRAMFILES64\${PRODUCT_NAME});
                                                        ; 支持自定义,如D:\HUI
[extend]
productwebsite="www.HUI.top"                            ; 官网
installestimatedtime=2                                  ; 安装预计时长,单位分钟
showautorunbtn=true                                     ; 是否显示“启动程序”按钮
autorun=false                                           ; 是否默认安装完成后启动程序
showautostartbtn=true                                   ; 是否显示“开机自启动”按钮
autostart=false                                         ; 是否默认设置“开机自启动”
modifyinstallpath=false                                 ; 是否支持修改路径
showcreatedesktopshortcutbtn=true                       ; 是否显示“创建桌面快捷方式”按钮
createdesktopshortcutbtn=true                           ; 是否默认设置“创建桌面快捷方式”

2.4 运行build-setup.bat脚本

image.png

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

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

相关文章

通用机V8R6集群部署_1主1备1见证_图形化_Centos7

KingbaseES 提供数据库部署工具进行数据库集群的部署。KingbaseES 提供基于图形化和命令行操作的集群部署方式,本文档主要用于指导不支持 GUI 的服务器上的 KingbaseES 集群部署工作。 集群简介 KingbaseES软件能够提供一主一备以及一主多备的高可用集群架构&…

Python轴承故障诊断 (十)基于VMD+CNN-Transfromer的故障分类

目录 1 变分模态分解VMD的Python示例 2 轴承故障数据的预处理 2.1 导入数据 2.2 故障VMD分解可视化 3 基于VMDCNN-Transformer的轴承故障诊断分类 3.1 定义VMD-CNN-Transformer分类网络模型 3.2 设置参数,训练模型 3.3 模型评估 代码、数据如下&#xff1a…

大图切片预览

文章目录 前言处理流程完整代码前端预览 前言 最近有需求,前端要预览百兆以上的大图,这直接访问应该就不太行了,系统打开都在加载好一会儿,刚好从事的又是 gis 行业,于是打算用类似加载地图的方式来切片加载大图。这里…

【HarmonyOS】掌握 Stage 模型的核心概念与应用

从今天开始,博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”,对于刚接触这项技术的小伙伴在学习鸿蒙开发之前,有必要先了解一下鸿蒙,从你的角度来讲,你认为什么是鸿蒙呢?它出现的意义又是…

谷歌提出「边界注意力」模型,实现超越像素级检测精度!微弱边界也逃不过

有些情况下,当面临分辨率较低的图像时,可能会在进行诸如目标检测和图像分割等任务时遇到一些挑战和阻碍。这是因为低分辨率图像可能丢失了细节信息,使得计算机视觉系统难以准确捕捉和理解图像中的关键特征。在这种背景下,传统的方…

Poi实现根据word模板导出-图表篇

往期系列传送门: Poi实现根据word模板导出-文本段落篇 (需要完整代码的直接看最后位置!!!) 前言: 补充Word中图表的知识: 每个图表在word中都有一个内置的Excel,用于…

kubernetes 容器监控 Sysdig Falco

开头语 写在前面:如有问题,以你为准, 目前24年应届生,各位大佬轻喷,部分资料与图片来自网络 内容较长,页面右上角目录方便跳转 Sysdig 监控容器系统调用 介绍 资料 Sysdig:一个非常强大的系统监控、分…

PostgreSQL的常见错误和解决方法

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 在学习新的东西时,会犯很多的错误,会遇到很多坑。我们在填坑与犯错中不断进步成长。 以下是在学习pgsql中…

【驱动序列】C#获取电脑硬件之CPU信息,以及它都有那些品牌

欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是是《驱动序列》文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识…

【深度学习】SDXL tensorRT 推理,Stable Diffusion 转onnx,转TensorRT

文章目录 sdxl 转 diffusers转onnx转TensorRT sdxl 转 diffusers def convert_sdxl_to_diffusers(pretrained_ckpt_path, output_diffusers_path):import osos.environ["HF_ENDPOINT"] "https://hf-mirror.com" # 设置 HF 镜像源(国内用户使…

k8s的集群调度:

k8s的集群调度: Scheduler:负责调度资源,把pod调度到node节点 预算策略 优先策略 list-watch k8s集群当中,通过list-watch的机制进行每个组件的协作,保持数据同步,每个组件之间的解耦 Kubectl配置文件&#xff0c…

1.9 day7 IO进程线程

使用消息队列完成两个进程间的通信 进程1 #include <myhead.h> struct migbuf {long a;//消息类型char b[1024];//消息正文 }; #define SIZE (sizeof(struct migbuf)-sizeof(long)) int main(int argc, const char *argv[]) {//创建key值key_t key0;if((keyftok(".…

从文本(.txt)文件中读取数据时出现中文乱码

前言 当需要从记事本中读取数据时&#xff0c;发现读取的数据会出现中文乱码&#xff0c;我尝试了C和C读取文件&#xff0c;发现都是这样。 乱码原因 文本文件的保存默认使用UTF-8编码方式&#xff0c;而VS编译器的编码方式是GBK&#xff0c;所以不同的编码方式导致了乱码。…

6.1.2捕捉图像(内含5D博客长截图,你们都去哪儿了?)

6.1.2捕捉图像 利用HyperSnap6可以很方便地捕捉全屏、虚拟桌面、窗口、控件、整页、按钮、活动窗口和区域。除此之外&#xff0c;它还可以进行自由捕捉和特殊捕捉。 1&#xff0e;捕捉窗口或控件 利用传统的“PrintScreen”或“AltPrintScreen”键只能捕捉整个屏幕或当前活动…

numpy100练习题,包含相应使用函数解释

取自github开源项目&#xff1a;numpy100题 文章目录 1. 导入numpy库并简写为 np (★☆☆)2. 打印numpy的版本和配置说明 (★☆☆)3. 创建一个长度为10的空向量 (★☆☆)4. 如何找到任何一个数组的内存大小&#xff1f; (★☆☆)5. 如何从命令行得到numpy中add函数的说明文档?…

【Python学习】Python学习10-列表

目录 【Python学习】Python学习10-列表 前言创建语法访问列表中的值更新和删除列表元素操作列表列表截取Python列表函数&方法参考 文章所属专区 Python学习 前言 本章节主要说明Python的列表List。 创建语法 创建一个列表 通过方括号和逗号分割创建&#xff0c;列表数据…

springboot学生成绩管理系统源码和论文

随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&#xf…

书生大模型全链路开源体系

书生浦语大模型全链路开源体系开源了哪些东西 数据书生万卷&#xff1a;一个2TB的涵盖多种模态与任务的数据集预训练InternLM-Train&#xff1a;微调XTuner&#xff1a;可供你低成本微调模型的工具箱部署LMDeploy&#xff1a;一个服务端场景下、transformer 结构 LLM 部署工具…

使用开源通义千问模型(Qwen)搭建自己的大模型服务

目标 1、使用开源的大模型服务搭建属于自己的模型服务&#xff1b; 2、调优自己的大模型&#xff1b; 选型 采用通义千问模型&#xff0c;https://github.com/QwenLM/Qwen 步骤 1、下载模型文件 开源模型库&#xff1a;https://www.modelscope.cn/models mkdir -p /data/…

Camunda ServiceTask

一&#xff1a;Java class Java class实现JavaDelegate接口&#xff0c;只需要配置类的全限定名即可&#xff0c;不需要被Spring容器管理。 public class JavaClassServiceTask implements JavaDelegate {Overridepublic void execute(DelegateExecution execution) throws …