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

Qt Installer Framework: How to check if component is selected for installation

关于 Qt Installer Framework,我有这个问题:

如果当前在“组件选择”页面中选择安装此组件,我如何签入组件脚本?

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

你可以使用函数

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

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

所有这些功能都取决于包的先前状态。已卸载的已勾选包将在installationRequested中标记,已安装的未勾选包将在uninstallationRequested中标记,已安装版本低于捆绑版本的已勾选包将在[=13=中标记].

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

built-ininstaller对象可以return列出所有组件。 参见:https://doc.qt.io/qtinstallerframework/scripting-installer.html#components-method

“组件”对象除了 Moose 此处引用的方法外还有一个 installed 属性。 参见:https://doc.qt.io/qtinstallerframework/scripting-component.html

这里有一些有用的 QtScript,可以针对您的用例进行剪切、粘贴和修改:

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 ).installationRequested(); }
    catch(e){ console.log( "Component not found: " + name ); }
    return false;
}