【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程序打包exe,单文件和多文件方式

《Python程序打包exe,单文件和多文件方式》:本文主要介绍Python程序打包exe,单文件和多文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python 脚本打成exe文件安装Pyinstaller准备一个ico图标打包方式一(适用于文件较少的程

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源

Python程序的文件头部声明小结

《Python程序的文件头部声明小结》在Python文件的顶部声明编码通常是必须的,尤其是在处理非ASCII字符时,下面就来介绍一下两种头部文件声明,具有一定的参考价值,感兴趣的可以了解一下... 目录一、# coding=utf-8二、#!/usr/bin/env python三、运行Python程序四、

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

Qt之QMessageBox的具体使用

《Qt之QMessageBox的具体使用》本文介绍Qt中QMessageBox类的使用,用于弹出提示、警告、错误等模态对话框,具有一定的参考价值,感兴趣的可以了解一下... 目录1.引言2.简单介绍3.常见函数4.按钮类型(QMessage::StandardButton)5.分步骤实现弹窗6.总结1.引言

Qt中Qfile类的使用

《Qt中Qfile类的使用》很多应用程序都具备操作文件的能力,包括对文件进行写入和读取,创建和删除文件,本文主要介绍了Qt中Qfile类的使用,具有一定的参考价值,感兴趣的可以了解一下... 目录1.引言2.QFile文件操作3.演示示例3.1实验一3.2实验二【演示 QFile 读写二进制文件的过程】4.

SpringBoot后端实现小程序微信登录功能实现

《SpringBoot后端实现小程序微信登录功能实现》微信小程序登录是开发者通过微信提供的身份验证机制,获取用户唯一标识(openid)和会话密钥(session_key)的过程,这篇文章给大家介绍S... 目录SpringBoot实现微信小程序登录简介SpringBoot后端实现微信登录SpringBoo

uniapp小程序中实现无缝衔接滚动效果代码示例

《uniapp小程序中实现无缝衔接滚动效果代码示例》:本文主要介绍uniapp小程序中实现无缝衔接滚动效果的相关资料,该方法可以实现滚动内容中字的不同的颜色更改,并且可以根据需要进行艺术化更改和自... 组件滚动通知只能实现简单的滚动效果,不能实现滚动内容中的字进行不同颜色的更改,下面实现一个无缝衔接的滚动

macOS Sequoia 15.5 发布: 改进邮件和屏幕使用时间功能

《macOSSequoia15.5发布:改进邮件和屏幕使用时间功能》经过常规Beta测试后,新的macOSSequoia15.5现已公开发布,但重要的新功能将被保留到WWDC和... MACOS Sequoia 15.5 正式发布!本次更新为 Mac 用户带来了一系列功能强化、错误修复和安全性提升,进一步增

Java使用WebView实现桌面程序的技术指南

《Java使用WebView实现桌面程序的技术指南》在现代软件开发中,许多应用需要在桌面程序中嵌入Web页面,例如,你可能需要在Java桌面应用中嵌入一部分Web前端,或者加载一个HTML5界面以增强... 目录1、简述2、WebView 特点3、搭建 WebView 示例3.1 添加 JavaFX 依赖3