Qt Installer Framework:如何检查是否选择了要安装的组件

时间:2019-07-06 15:45:31

标签: qt qt-installer

关于Qt安装程序框架,我有一个问题:

如果在组件选择页面中当前选择了要安装的组件,如何检查组件脚本?

没有组件属性,我找不到可以查询的值。

2 个答案:

答案 0 :(得分:2)

您可以使用功能

component.componentChangeRequested();
component.installationRequested();
component.updateRequested();
component.uninstallationRequested();

查询有关请求的组件更改的信息。

所有这些功能取决于程序包的先前状态。已卸载的已检查软件包将在installationRequested中标记,已安装的未检查软件包将在uninstallationRequested中标记,而已安装版本早于捆绑版本的已检查软件包将被标记在{{1}中}。

有关更多信息,请检查component Documentation

答案 1 :(得分:0)

您可以直接检查组件的安装状态。您没有通过分类信号推出自己的解决方案。

内置的installer对象可以返回所有组件的列表。 参见:https://doc.qt.io/qtinstallerframework/scripting-installer.html#components-method

“组件”对象的属性例如installed。 参见:https://doc.qt.io/qtinstallerframework/scripting-component.html

以下是一些剪切和粘贴的代码:

function getComponent( name ) {
    var comps=installer.components();
    for( i=0; i< comps.length; i++ ) {
        if( comps[i].name == name ) return comps[i];
    }
    throw new Error( "Component not found: " + name );
}

function isComponentInstalled( name ) {
    try{ return getComponent( name ).installed; }
    catch(e){ console.log( "Component not found: " + name ); }
    return false;
}

function isComponentSelected( name ) {
    try{ return getComponent( name ).enabled; }
    catch(e){ console.log( "Component not found: " + name ); }
    return false;
}