Qt-Installer-Framework使用二

Qt-Installer-Framework使用二

上一篇文章记录了QIFW基本的使用,下面说说一些个性化配置功能.

打包结构说明

基本结构如下所示:
Qt-Installer-Framework使用二_第1张图片

主要包含两部分,configpackages.

config 目录主要放置一些打包软件的整体配置,比如打包后安装过程中显示的软件名称、版本号、公司名称、界面图标等等信息;

packages 目录主要配置每个安装组件的信息。组件化安装配置是 QIFW的一大特色,可以根据需求选择安装那些功能组件,这一点在我们安装 Qt 的时候很明显,可以选择安装 Qt的那些模块。
每个组件有自己的一些配置信息,以及组件之间可以有依赖关系,形象的展示为树状关系.

比如目前有2个版本需要根据系统版本来进行选择安装,64位程序时不能安装在32位机器上的,在安装时需要根据当前系统版本自行判断安装那个版本,64位机器可以安装32和64位软件,32位机器只能安装32复位软件,
否则无法运行。

config配置

一个简单的配置字段如下所示,XML都添加了注释说明:



    Installer Demo 										
    1.0.0											
    Installer Demo one									
    devstone										
	http://www.kevinlq.com						
	windowIcon				
	windowIcon		
	logo
    QIFWDemo
    C:/QIFWDemo										
	false					
	Modern										
	false								
	false	
	这是一个安装Demo展示	
	SDKMaintenanceTool
	false							

注意上述备注的新加字段,RemoveTargetDirEnableComponentBtnEnable 是我自定义的字段,如果直接从官方下载 exe进行打包,可能会发生找不到字段的错误,这2个字段可以通过修改源码进行编译。

路径: QIFW\src\libs\installer\constants.h

static const QLatin1String scRemoveTargetDirEnable("RemoveTargetDirEnable");    /// 组件安装路径是否能够编辑
static const QLatin1String scComponentBtnEnable("ComponentBtnEnable");          /// 组件选择页面三个按钮是否能够点击

初始化:

Settings Settings::fromFileAndPrefix(const QString &path, const QString &prefix, ParseMode parseMode)
{
	......
    if (!s.d->m_data.contains(scComponentBtnEnable))
        s.d->m_data.insert(scComponentBtnEnable, true);
	
	......
}
void ComponentSelectionPage::initializePage()
{
    /*! devstone add scRemoveTargetDirEnable [2019.06.14]*/
    bool bEnableSelect = packageManagerCore()->valueVariant(scComponentBtnEnable).toBool();
    d->setCompomentSelectEnable(bEnableSelect);

    PackageManagerPage::initializePage();
}

注:详细代码可以到我的 GitHub 主页去下载.

packages 配置

packages 目录包含了2部分内容,metadata(我们需要打包的一堆程序文件).

meta配置主要有一下几个(一般常用的就前2个):

  • installer.qs
  • package.xml
  • xxx.ui(自定义界面才需要)

installer.qs 文件其实就是一个 js 脚本文件,我们可以使用 js 对安装软件进行二次开发定制,可以控制某个安装向导页面是否显示,以及显示后执行那些操作,又或者添加新的 ui界面都可以通过
脚本进行控制.

通过脚本可以判断当前操作系统的类型,进而对安装的组件进行适配。

package.xml 可以配置每个组件的性质,比如版本、名字,是否默认,是否能够编辑.



    x86-64 bit binaries
    Binaries that require a x86-64 CPU.
    1.0.0-1
    2014-12-01
    false
	false		

CompomentsEnable字段是自定义字段,可以控制某个组件是否能够手动点击取消或者选择.

安装界面

打包后的软件安装过程如下:
Qt-Installer-Framework使用二_第2张图片

Qt-Installer-Framework使用二_第3张图片
这里对安装路径进行了限制,不让用户修改,可以通过我新添加的字段进行配置,默认可以编辑.

如果没有配置该字段,默认可以编辑.
RemoveTargetDirEnable

Qt-Installer-Framework使用二_第4张图片

上面是根据当前系统版本进行了限制.

源码下载

  • GitHub -kevinlq

参考文章

  • [24] 1
  • [cnblog] 2
  • [Qt官方] 3

作者:鹅卵石
时间:  2019年06月15日22:54:35
版本:V 0.0.1
邮箱:[email protected]
版权:本博客若无特别声明,均属于作者原创文章,欢迎大家转载分享。但是,
希望您注明来源,并留下原文地址,这是对作者最大的尊重,也是对知识的尊重。

你可能感兴趣的:(Qt学习之路,QT)