【Qt】NSIS发布安装包程序

2023-10-22 03:30
文章标签 程序 qt 发布 安装包 nsis

本文主要是介绍【Qt】NSIS发布安装包程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前面说过了用 windeployqt 动态编译可执行程序,但整个包还是散的。

我们常见的软件都会有一个安装程序,安装后,会生成安装目录,还可以创建桌面快捷方式等等。

那么,如何将我们编译好的Qt release程序打包成安装程序呢?这里记录一下NSIS+NISEdit方法。

NSIS发布安装包

    • 1.准备部署软件
    • 2.用nisedit制作发布脚本
    • 3.用NSIS软件编译脚本

1.准备部署软件

我这里用的版本如下:
nsis-3.02.1(最新版nsis是包含了下面的nisedit的)
在这里插入图片描述
nisedit2.0.3

在这里插入图片描述

2.用nisedit制作发布脚本

1.新建向导脚本

在这里插入图片描述
2.填写应用信息

在这里插入图片描述
3.设置图标、语言等

在这里插入图片描述
4.设置目录与授权信息

在这里插入图片描述
5.选择打包的程序文件

在这里插入图片描述
6.设置快捷方式

在这里插入图片描述
7.安装后运行方式(只有一个.exe就默认)

在这里插入图片描述
8.设置卸载

在这里插入图片描述
9.完成向导

在这里插入图片描述
生成的脚本如下,可自定义更改:

在这里插入图片描述

比如要在安装开始的时候选择语言,可以添加以下脚本:

; Language files
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "SimpChinese";初始化函数
Function .onInitPush ""Push ${LANG_ENGLISH} ;添加英文代码 语言代码是系统变量,多语言引入后,自动加载,拼接方式是“LANG_语言”,可以查看NSIS手册,LANG_ENGLISH的编号为1033,LANG_SIMPCHINESE为2052;Push "English"Push ${LANG_SIMPCHINESE}   ;添加简体中文选项Push "简体中文"Push A ; A means auto count languages for the auto count to work the first empty push (Push "") must remainLangDLL::LangDialog "Installer Language" "Please select the language of the installer" ;显示语言选择对话框Pop $LANGUAGE ;获得用户对于语言的选择结果 ‘$LANGUAGE’是多语言变量,在安装程序结束后,语言代码会存储在这个变量中,手动修改‘$LANGUAGE’的值后,安装包会重新选择最匹配的语言,参考最上面NSIS手册中选择界面语言步骤StrCmp $LANGUAGE "cancel" 0 +2AbortStrCmp $LANGUAGE 2052 ZH_INI EN_INIEN_INI:;想干啥干啥Goto ENDZH_INI:;想干啥干啥END:
FunctionEnd

3.用NSIS软件编译脚本

加载上一步生成的脚本,编译即可:

在这里插入图片描述
测试安装完成后,生成桌面快捷方式如下:

在这里插入图片描述
以上。

这篇关于【Qt】NSIS发布安装包程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

修复已被利用的高危漏洞! macOS Sequoia 15.6.1发布

《修复已被利用的高危漏洞!macOSSequoia15.6.1发布》苹果公司于今日发布了macOSSequoia15.6.1更新,这是去年9月推出的macOSSequoia操作... MACOS Sequoia 15.6.1 正式发布!此次更新修复了一个已被黑客利用的严重安全漏洞,并解决了部分中文用户反馈的

基于Python编写自动化邮件发送程序(进阶版)

《基于Python编写自动化邮件发送程序(进阶版)》在数字化时代,自动化邮件发送功能已成为企业和个人提升工作效率的重要工具,本文将使用Python编写一个简单的自动化邮件发送程序,希望对大家有所帮助... 目录理解SMTP协议基础配置开发环境构建邮件发送函数核心逻辑实现完整发送流程添加附件支持功能实现htm

C#控制台程序同步调用WebApi实现方式

《C#控制台程序同步调用WebApi实现方式》控制台程序作为Job时,需同步调用WebApi以确保获取返回结果后执行后续操作,否则会引发TaskCanceledException异常,同步处理可避免异... 目录同步调用WebApi方法Cls001类里面的写法总结控制台程序一般当作Job使用,有时候需要控制

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Qt使用QSqlDatabase连接MySQL实现增删改查功能

《Qt使用QSqlDatabase连接MySQL实现增删改查功能》这篇文章主要为大家详细介绍了Qt如何使用QSqlDatabase连接MySQL实现增删改查功能,文中的示例代码讲解详细,感兴趣的小伙伴... 目录一、创建数据表二、连接mysql数据库三、封装成一个完整的轻量级 ORM 风格类3.1 表结构

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC