Qt Install Framework使用方法

2023-11-12

Qt程序的打包发布现在已经可以通过其发布的Installer Framework框架来完成,通过修改一些配置文件即可实现。

首先,现在该框架官网提供1.3.01.4.01.5.0版本的下载(本文书写时),根据有新的谁他吗还用旧的准则,下载1.5.0版本(http://download.qt-project.org/official_releases/qt-installer-framework/1.5.0/),安装到你喜欢的目录下。

其次,打开安装目录,找到examples文件夹,我们以其中的tutorial下的工程作为模版来演示其使用过程。

下面来具体做一个例子以显示安装向导的生成方法。

1Copy该目录或者自己创建一个目录(名字随意,比如sunshine,然后创建两个子目录(建议使用configpackages这两个名字,一目了然),关于这两个目录的含义,可传送到官网去查看http://qt-project.org/doc/qtinstallerframework-1.5/index.html)。

2、进入tutorial目录的config子目录,可以开导config.xml文件,该文件用来自定义安装向导的UI和行为,这个文件应命名为config.xml并被放在config目录下(翻译自官网)。打开config.xml文件(下载个notepad++方便查看或修改):

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <Installer>  
  3.     <Name>你开发的软件的名字</Name>  
  4.     <Version>1.2.3</Version>  
  5.     <Title>安装向导的名字</Title>  
  6.     <Publisher>版权所有方名字(比如你的公司)</Publisher>  
  7.     <StartMenuDir>开始菜单的名字</StartMenuDir>  
  8.     <TargetDir>缺省的指定安装目录</TargetDir>  
  9. </Installer>  

下面是以我的打包用例的程序修改后的config.xml文件内容:

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <Installer>  
  3.     <Name>Weather</Name>  
  4.     <Version>1.0.2</Version>  
  5.     <Title>安装向导</Title>  
  6.     <Publisher>Sunshine</Publisher>  
  7.     <StartMenuDir>Weather</StartMenuDir>  
  8.     <TargetDir>@rootDir@/Program Files</TargetDir>  
  9. </Installer>  

3、创建一个包信息文件,此处我们仍修改历程目录下的包文件,tutorial\packages\com.vendor.product\meta目录下packages.xml,该文件作用如下:安装包包含内嵌的其他组件或者需要从远程获取组件时,就需要一个文件格式化并结构化的组织相关信息以供安装向导读取使用。编辑packages.xml:

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <Package>  
  3.     <DisplayName>The root component</DisplayName>  
  4.     <Description>Install this example.</Description>  
  5.     <Version>0.1.0-1</Version>  
  6.     <ReleaseDate>2010-09-21</ReleaseDate>  
  7.     <Name>com.vendor.product</Name>  
  8.     <Licenses>  
  9.         <License name="Beer Public License Agreement" file="license.txt" />  
  10.     </Licenses>  
  11.     <Default>script</Default>  
  12.     <Script>installscript.qs</Script>  
  13. </Package>   

其具体含义及使用方法请到官网查看(http://qt-project.org/doc/qtinstallerframework-1.5/ifw-component-description.html)。

1:若想该组件包必须安装时,可在packages.xml文件中添加如下内容:<ForcedInstallation>true</ForcedInstallation>

若该属性设置为false或者为设置,那么该组件就是可选安装的,其名字可以在<DisplayName>The root component</DisplayName>处修改。


如果做完了以上的准备工作,最后的内容应该如下:

1、文件夹下包括configpackages两个目录;

2、Config下包括一个config.xml文件,内容如下:

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <Installer>  
  3.     <Name>App Name</Name>  
  4.     <Version>1.0.1</Version>  
  5.     <Title>安装向导</Title>  
  6.     <Publisher>公司名(版权商)</Publisher>  
  7.     <StartMenuDir>开始菜单所需展示的名字</StartMenuDir>  
  8.     <TargetDir>@RootDir@InstallationDirectory</TargetDir>  
  9. </Installer>  

3、packages目录下包括一个目录(组件集合的目录),此处我们定义为root,其下包括metadata两个目录,你可以将你的应用程序打包成7z格式放在该目录下;meta目录下包括packages.xml和响应的script文件,packages.xml内容如下:

  1.  <?xml version="1.0" encoding="UTF-8"?>  
  2. <Package>  
  3.     <DisplayName>App Name</DisplayName>  
  4.     <Description>Install App.</Description>  
  5.     <Version>1.0.1-2</Version>  
  6.     <ReleaseDate>2010-09-21</ReleaseDate>  
  7.     <Name>weather(needed)</Name>  
  8.     <Licenses>  
  9.         <License name="Beer Public License Agreement" file="license.txt" />  
  10.     </Licenses>  
  11. <Script>installscript.qs</Script>  
  12.    <ForcedInstallation>true</ForcedInstallation>  
  13. </Package>  


然后,我们看一下script文件:

//该函数必须包含

function  Component()

{

   // constructor

}

//此处为安装的程序,在开始菜单处设置连接;

[javascript] view plain copy
  1. //"@TargetDir@/sunshine.exe"指定exe的路径,//"@StartMenuDir@/sunshine.lnk"指定链接  
  2. Component.prototype.createOperations = function()  
  3. {  
  4.    // call default implementation to actually install README.txt!  
  5.    component.createOperations();  
  6.    
  7.    if (installer.value("os") === "win") {  
  8.        component.addOperation("CreateShortcut""@TargetDir@/sunshine.exe""@StartMenuDir@/sunshine.lnk");  
  9.    }  
  10. }  

准备工作完成:

打开cmd(win+R),然后切换到你所建立的目录下,此处为,然后输入如下内容:


 


然后,打开该目录发现目录下出现setup.exe安装程序。

 

然后,你可以试着双击去安装,过程应该如下:

 

 

 

 

 

 

 


到此,安装完成,我们进到c盘下,看到我们的安装目录,

 


 然后我们打开开始菜单观察:

 

安装过程完成。

后记:

上述的过程基本满足了打包安装程序的需求,可以简单的进行使用,若有更高级的需求

可以去查阅官方的文档进行修改配置文件和编写js文件,以达到自己的目的。祝好!



FROM:  http://blog.csdn.net/sunshinwong/article/details/37764719


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt Install Framework使用方法 的相关文章

  • Matlab查询表格中数据并对数据进行对比

    想查查自己在年级每个成绩排多少名 然后编了这样一个程序 a 算法分析与设计实验 记录学习算法分析与设计实验的总人数 j 0 记录比这个分大的人数 k 0 for i 1 26863 比较两个字符串是否相等 if strcmp Untitle
  • Windows 下 T-Kernel QEMU模拟器使用

    google了一下 没有找到T Kernel QEMU模拟器使用介绍的内容 只有T Kernel 自己的文档 那就简单的介绍一下 1 下载对应的T Kernel代码包 参考以前的文档 http blog csdn net robertson
  • Python:用指定的字拼成这个字本身

    字 字 字字字字字字字字字字字 字 字 字字字字字字字 字 字 字字字字字字字字字字字 字 字 字字字 符 符 符符符符 符符符符符 符 符 符 符 符 符 符 符 符符 符符符符符符符 符 符 符 符 符 符 符 符 符 符 符 符 符符
  • 逻辑设备名到物理设备名的映射实现

    为了实现设备的无关性 当应用程序请求使用I O设备时 应当用逻辑设备名 但系统值识别物理设备名 所以应在系统中需要配置一张逻辑设备表 用于将逻辑设备名映射到物理设备名 逻辑设备表LUT Logical Unit Table 在逻辑设备表中
  • 使用Anaconda创建python环境 & 常见错误

    目录 使用anaconda创建python环境 1 流程 1 使用 cmd 命令打开终端 2 执行 conda 命令进入conda环境 3 执行 conda creat name 环境名 python python版本 命令创建环境 2 常
  • 在vue中使用for循环有异步请求,每次都只获取到最后一个数据解决办法

    我预想是将标签数组 dynamicTags 使用for循环取出每个值 在遍历标签数组将值一一添加到数据库中 奈何for循环结束了 才去执行put请求 这就导致了只添了数组的最后一个值 原因是axios put请求是异步请求 解决方案 使用递
  • 分析整理文献的具体步骤_VOSviewer文献综述

    文献综述在科技论文和学位论文中占据着重要地位 是论文中的一个重要且不可或缺的部分 它是研究者在对某一学科 专业或专题的大量文献进行阅读 整理 筛选 分析 综合和提炼的基础上 用自己的语言综合叙述研究状况的情报研究成果 因此 文献综述的好坏直
  • 计算宽度_桥梁有效宽度计算,看看很有用!

    有效分布宽度实质上是剪力滞效应的反应 由于目前桥梁设计多用二维平面解析 故荷载的有效分布宽度仍需要计算 不过还有很多深层次问题还不能合理解答 有待进一步研究和探讨 各中间跨正弯矩段取该跨计算跨径的0 2倍 边跨正弯矩段取该跨计算跨径的0 2
  • 回溯法-装载问题

    子集树问题 和 子集树的0 1背包问题类似 但是没有考虑价格 include
  • 【Parallels Desktop】解决Sorry, This Application Cannot Be Run Under A Virtual Machine

    问题描述 解决步骤 Win R 或Cmd R 打开 运行 窗口 输入regedit并点击 确定 打开注册表编辑器 依次展开HKEY LOCAL MACHINE HARDWARE ACPI DSDT文件夹 鼠标右键点击PRLS 选择 重命名
  • Redis第二讲 Redis数据持久化AOF和RDB

    RDB快照 snapshot 在默认情况下 Redis 将内存数据库快照保存在名字为 dump rdb 的二进制文件中 你可以对 Redis 进行设置 让它在 N 秒内数据集至少有 M 个改动 这一条件被满足时 自动保存一次数据集 save

随机推荐

  • 【修仙境界】等级划分

    文章目录 一 下境界 1 炼气 一共13层 2 筑基 分初 中 后期和大圆满 3 结丹 分初 中 后期和大圆满 4 元婴 分初 中 后期和大圆满 5 化神 分初 中 后期和大圆满 二 中境界 1 炼虚 分初 中 后期和大圆满 2 合体 分初
  • C++ 编程出错的地方(考试选择题易错点)

    一 int IsSvn int n if n 7 0 return 1 要判断这个数能不能被7整除 你就只返回1吗 那岂不是只返回1 没有0的情况了 应该改为 int IsSvn int n if n 7 0 return 1 else r
  • 2021年电赛模块化程序总结

    文章目录 1 ADC0804 2 LCD1602 3 AD9854 1 ADC0804 集成A D转换器品种繁多 选用时应综合考虑各种因素选取集成芯片 一般逐次比较型A D转换器用的比较多 ADC0804就是这类单片集成A D转换器 ADC
  • 9、HTML:有序列表(ol),无序列表(ul),描述列表(dl、dt、dd)详解

    1 什么是列表 什么是列表 什么是有序列表 什么是无序列表 上面写的 3 句话就是一个列表 你懂得 2 有序列表 有序列表 英文叫做 ordered list 所以标签也是取这个词组的首字母 ol ol标签括起来的范围就是有序列表的范围 而
  • Win11怎么修改c盘用户名?

    Win11怎么修改c盘用户名 不知道的小伙伴们可以学起来了 谨慎操作 以下的方法提供给你 希望对你有所帮助 Win11更改C盘user用户名教程 一 开启Administrator权限并登入 搜索框搜索cmd 右击以管理员身份运行 出现cm
  • C++每日一问:C++ 内存管理——内存泄漏及处理

    2 内存泄漏 2 1 C 中动态内存分配引发问题的解决方案 假设我们要开发一个String类 它可以方便地处理字符串数据 我们可以在类中声明一个数组 考虑到有时候字符串极长 我们可以把数组大小设为200 但一般的情况下又不需要这么多的空间
  • 唯一分解定理(分解质因子)

    唯一分解定理 每个大于一的自然数均可写为质数的积 而且这些素因子按大小排列之后 写法只有一种方式 最简单的写法 include
  • matlab绘制正弦函数、幅度调制初步、Inner matrix dimensions must agree错误

    以sin 2 f t 表达式来绘制正弦图像 必须给定数值序列才能绘制出图像 t必须给定一个数值序列 然后计算出 y sin 函数值序列 以t为横轴 y为纵轴 就绘制出了图像 先给出f 4 在这里是有几个周期 采样率Fs 100 matlab
  • flask从入门到精通,知识讲解+代码演示 day1

    flask从入门到精通 知识讲解 代码演示 day1 文章目录 flask从入门到精通 知识讲解 代码演示 day1 一 flask是什么 二 使用步骤 1 创造flask项目 2 初入flask 3 flask代码初运行 4 flask从
  • Spring Cloud实战(五)-声明式接口模块

    接着上一篇 Spring Cloud实战 四 配置中心 现在开始搭建api模块 一 声明式接口模块api 1 pom xml
  • 数学建模-相关性分析(Matlab)

    注意 代码文件仅供参考 一定不要直接用于自己的数模论文中 国赛对于论文的查重要求非常严格 代码雷同也算作抄袭 如何修改代码避免查重的方法 https www bilibili com video av59423231 清风数学建模 一 基础
  • GPU与GPGPU泛淡

    GPU与GPGPU泛淡 GPU Graphics Processing Unit 也即显卡 是一种专门在个人电脑 工作站 游戏机和一些移动设备 如平板电脑 智能手机等 上作图像运算工作的微处理器 它已经是个人PC和移动设备上不可或缺的芯片
  • C#数据类型之枚举类型

    一 枚举类型的定义 public enum 枚举名称 枚举数据类型 枚举的数据类型可以省略 默认类型为int 枚举项1 枚举项的值 枚举项的值是整数可以自己设置 枚举项2 枚举项3 例如 public enum month ushort 一
  • Clion + mysql (win/Mac + 本地/远程)

    新手教程 那些年我用clion操作mysql的一些经验教训 本文目录 使用clion自带的数据库工具 对数据库进行操作 连接本地数据库 建库 建表 编辑表格 修改字段名 查询数据 插入新的数据 sql常用语句 mysql版 win Clio
  • 口罩检测——数据准备(2)

    文章目录 前言 一 数据介绍 二 数据标注 三 数据转换 总结 前言 上一篇文章中小编讲解了口罩检测的环境要求 在这一篇文章中我们就正式进入项目的讲解 我们从数据准备开始 数据是模型快乐的源泉 没有高质量的数据 再好的模型也白搭 一 数据介
  • Flink消费Rabbit数据,写入HDFS - 使用 BucketingSink

    一 应用场景 Flink 消费 Kafka 数据进行实时处理 并将结果写入 HDFS 二 Bucketing File Sink 由于流数据本身是无界的 所以 流数据将数据写入到分桶 bucket 中 默认使用基于系统时间 yyyy MM
  • 通过 Tensorflow 的基础类,构建卷积神经网络,用于花朵图片的分类

    实验目的 通过 Tensorflow 的基础类 构建卷积神经网络 用于花朵图片的分类 实验环境 import tensorflow as tf print tf version output 2 3 0 实验步骤 一 数据获取和预处理 1
  • 第五章 静态资源 CDN 引入

    第五章 静态资源 CDN 引入 静态请求 CDN 用户将静态资源数据请求到ECS服务器 ECS服务器解析到阿里云的CDN中 CDN可以理解为一个无限大的内容磁盘缓存 本身没有文件存储 当用户访问 getItem 的一个静态资源文件的时候 会
  • 【线代】特征值、惯性指数、标准型、规范型的关系?等价、相似与合同?

    目录 1 两矩阵特征值相同 1 1 实对称矩阵A B的特征值相同 2 二次型的标准型 2 1 标准型唯一吗 2 2 标准型与秩 2 3 标准型与特征值 2 4 正交变换与特征值 2 5 两个二次型的标准型相同 3 规范型 3 1 规范型唯一
  • Qt Install Framework使用方法

    Qt程序的打包发布现在已经可以通过其发布的Installer Framework框架来完成 通过修改一些配置文件即可实现 首先 现在该框架官网提供1 3 0 1 4 0和1 5 0版本的下载 本文书写时 根据有新的谁他吗还用旧的准则 下载1