前言
本文章开始讲解如何定制使用Qt开发安装界面的Nsis安装包只制作原理。
注意点
Qt用于做界面,逻辑可以先做,但是按钮的逻辑在 NSIS插件源码中将会是ui.调用,所以逻辑也会需要移植过去。
插件工程布局介绍
整体工程采用的是插件形式
Qt程序的入口
其实就是类似于dll调用,将Qt的调用放入到NSIS插件里面(笔者:msvc2017x32版本):
Qt程序与NSIS的交互:Qt调用NSIS
在Nsis中需要关联插件中(nsis插件代码)的函数.
$0~$9 和 R 0 R0~R0 R9 是 NSIS 中内置的变量,不用声明直接使用。
$0是回调好函数,临时存储地址:
Qt程序与NSIS的交互:NSIS设置Qt
插件中的NSISAPI函数,将安装路径设置到Qt中:
Qt程序与NSIS的交互:NSIS获取Qt设置的安装路径
Qt程序与NSIS的交互:NSIS通过 Qt参数执行不同函数
在Qt部分的代码中查看到执行该事件
在插件代码中查看到预定义的事件代码
在NSIS脚本中查看到该关键字
(补充说明:以 $ 开头的还有一些内置的表示路径或句柄等变量或常量,比如 H W N D P A R E N T 、 HWNDPARENT、HWNDPARENT、PROGRAMFILES、I N S T D I R 、 INSTDIR、INSTDIR、EXEDIR、$WINDIR 等。)。
Demo
安装过程
开始菜单的最近安装
开始菜单对应文件夹
桌面快捷方式