若该文为原创文章,转载请注明原文出处 

红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)

其他(编程相关)

上一篇:《NSIS安装包开发笔记(二):NSIS使用NSIS+Qt界面制作安装包流程
下一篇:敬请期待…


前言

  本文章开始讲解如何定制使用Qt开发安装界面的Nsis安装包只制作原理。


注意点

  Qt用于做界面,逻辑可以先做,但是按钮的逻辑在 NSIS插件源码中将会是ui.调用,所以逻辑也会需要移植过去。


插件工程布局介绍

  整体工程采用的是插件形式
  NSIS安装包开发笔记(三):NSIS使用Qt做的安装界面制作安装包交互详解_原力计划


Qt程序的入口

  其实就是类似于dll调用,将Qt的调用放入到NSIS插件里面(笔者:msvc2017x32版本):
  NSIS安装包开发笔记(三):NSIS使用Qt做的安装界面制作安装包交互详解_NSIS_02
  NSIS安装包开发笔记(三):NSIS使用Qt做的安装界面制作安装包交互详解_NSIS_03

Qt程序与NSIS的交互:Qt调用NSIS

  在Nsis中需要关联插件中(nsis插件代码)的函数.
  $0~$9 和 R 0   R0~ R0 R9 是 NSIS 中内置的变量,不用声明直接使用。
  $0是回调好函数,临时存储地址:

Qt程序与NSIS的交互:NSIS设置Qt

  插件中的NSISAPI函数,将安装路径设置到Qt中:
  NSIS安装包开发笔记(三):NSIS使用Qt做的安装界面制作安装包交互详解_Qt安装包制作_04
  NSIS安装包开发笔记(三):NSIS使用Qt做的安装界面制作安装包交互详解_Qt_05

  

Qt程序与NSIS的交互:NSIS获取Qt设置的安装路径

  NSIS安装包开发笔记(三):NSIS使用Qt做的安装界面制作安装包交互详解_原力计划_06

Qt程序与NSIS的交互:NSIS通过 Qt参数执行不同函数

  在Qt部分的代码中查看到执行该事件
  NSIS安装包开发笔记(三):NSIS使用Qt做的安装界面制作安装包交互详解_Qt安装包制作_07

  在插件代码中查看到预定义的事件代码
  NSIS安装包开发笔记(三):NSIS使用Qt做的安装界面制作安装包交互详解_NSIS+QT交互_08
  在NSIS脚本中查看到该关键字
  NSIS安装包开发笔记(三):NSIS使用Qt做的安装界面制作安装包交互详解_Qt_09
  (补充说明:以 $ 开头的还有一些内置的表示路径或句柄等变量或常量,比如 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

安装过程

   NSIS安装包开发笔记(三):NSIS使用Qt做的安装界面制作安装包交互详解_NSIS_10
  NSIS安装包开发笔记(三):NSIS使用Qt做的安装界面制作安装包交互详解_Qt_11
  NSIS安装包开发笔记(三):NSIS使用Qt做的安装界面制作安装包交互详解_Qt安装包制作_12

开始菜单的最近安装

  NSIS安装包开发笔记(三):NSIS使用Qt做的安装界面制作安装包交互详解_原力计划_13

开始菜单对应文件夹

  NSIS安装包开发笔记(三):NSIS使用Qt做的安装界面制作安装包交互详解_NSIS+QT交互_14

桌面快捷方式

  NSIS安装包开发笔记(三):NSIS使用Qt做的安装界面制作安装包交互详解_Qt安装包制作_15


上一篇:《NSIS安装包开发笔记(二):NSIS使用NSIS+Qt界面制作安装包流程
下一篇:敬请期待…


若该文为原创文章,转载请注明原文出处
本文章博客地址:javascript:void(0)