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;
}
关于 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;
}