组件

表示 Qt 脚本所属的当前组件。 更多...

属性

信号

方法

详细说明

一个有效的最小脚本需要包含一个构造函数,它可以如下所示

function Component()
{
    // Access the global component's name property and log it to the debug console.
    console.log("component: " + component.displayName);
}

组件类和脚本引擎都会在脚本被评估之前修改脚本。当修改应用于上述片段时,脚本将变为

(function() { [1]
    var component = installer.componentByName('Component.Name.This.Script.Belongs.To'); [2]
    function Component()
    {
        // Access the global component's name property and log it to the debug console.
        console.log("component: " + component.displayName);
    }

    if (typeof Component != undefined) [1]
        return new Component; [1]
    else [1]
        throw "Missing Component constructor. Please check your script." [1]
})();

[1] Changes done by the script engine.
[2] Changes done by the Component class.

注意:这里的(i)组件(小写)是由C++ Component类引入的全局变量。该组件变量代表脚本所属的C++ Component对象。(大写的)组件是由脚本引擎实例化的JavaScript对象。

属性文档

archives : 字符串列表

返回为组件注册的归档URL列表(以 installer:// 前缀开头)。

参见:addDownloadableArchiveremoveDownloadableArchive


autoCreateOperations : 布尔值

指定在安装开始时,组件的一些标准操作是否应该自动创建。默认值为 true


autoDependencies : 字符串列表

返回包信息文件中的 <AutoDependOn> 标签的值。


default : 布尔值

这个只读属性表示组件是否是默认的。对于虚拟组件总是 false

注意:永远为虚拟组件返回 false

参见:isDefault


dependencies : 字符串列表

这个只读属性包含依赖于该组件的组件。


displayName : 字符串

返回用户界面中显示的组件名称。


enabled : 布尔值

指示组件当前是否启用。这个属性既是只读的,也是可写的。


fromOnlineRepository : 布尔值

返回此组件是否从在线仓库加载。

参见:isFromOnlineRepository


installed : 布尔值

这个只读属性返回组件是否已安装。

参见:isInstalled


name : 字符串

返回与包信息文件中的 <Name> 标签设置的组件名称。


repositoryUrl : url

返回组件下载的仓库URL。如果该组件未从在线仓库下载,则返回空QUrl


userInterfaces : stringlist

返回此组件已知的所有用户界面类名列表。


信号文档

loaded()

当组件被加载时触发。

注意:相关处理程序是onLoaded


valueChanged(string key, string value)

当具有名称 key 的变量的值变为 value 时触发。

注意:相关处理程序是onValueChanged

另请参阅:setValue


virtualStateChanged()

当组件的虚拟状态发生变化时触发。

注意:相关处理程序是onVirtualStateChanged


方法文档

boolean isAutoDependOn(QSet<string> componentsToInstall)

boolean isDefault()

确定组件是否作为自动依赖项提供。如果 componentsToInstall 中的所有组件都已安装或已选中安装,则返回 true,则此组件也需要安装。

/*!

指示组件是否为默认项。

注意:对于虚拟组件,始终返回 false

另请参阅:default


void addAutoDependOn(string newDependOn)

newDependOn 指定的组件添加到自动依赖项列表中。或者,可以通过逗号分隔指定多个组件。

另请参阅:autoDependencies


void addDependency(string newDependency)

将新组件 newDependency 添加到依赖项列表中。或者,通过逗号分隔可以指定多个组件。

另请参阅:dependencies


void addDownloadableArchive(string path)

将存档 path 添加到此组件。只能在此组件从在线仓库下载时调用。添加 path 时,在安装开始时将从仓库下载。

另请参阅:removeDownloadableArchivefromOnlineRepositoryarchives


boolean addElevatedOperation(string operation, string parameter1 = "", string parameter2 = "", ..., string parameter10 = "")

便捷方法,用于以最多10个参数调用 addElevatedOperation(string, stringlist)。为 operation 创建并添加安装操作。操作将以提升权限执行。


布尔型 addElevatedOperation(string operation, stringlist parameters)

创建并添加一个 operation 的安装操作。可以添加任意数量的 parameters。参数的内容将用其值替换其中的变量,如 "@TargetDir@"。以提升权利执行 operation


布尔型 addOperation(string operation, stringlist parameters)

创建并添加一个 operation 的安装操作。可以添加任意数量的 parameters。参数的内容将用其值替换其中的变量,如 "@TargetDir@"。

此方法通常从 component::createOperations 内部调用。


布尔型 addOperation(string operation, string parameter1 = "", string parameter2 = "", ..., string parameter10 = "")

为调用 addOperation(string, stringlist) 提供一个方便的方法,最多可提供 10 个参数 parameter1parameter2,... parameter10。创建并添加一个 operation 的安装操作。


void addStopProcessForUpdateRequest(string process)

在安装、更新或卸载组件之前,添加退出 process 的请求。


void beginInstallation()

开始组件安装。您可以通过在组件脚本中提供相同名称的方法来覆盖此方法。

Component.prototype.beginInstallation = function()
{
    // call default implementation
    component.beginInstallation();
    // ...
}

布尔型 componentChangeRequested()

返回 true 如果此组件将被更改(更新、安装或卸载)。


void createOperations()

创建安装此组件所需的所有操作。您可以通过在组件脚本中提供相同名称的方法来覆盖此方法。

Component.prototype.createOperations = function()
{
    // call default implementation
    component.createOperations();
    // ... add custom operations
}

默认实现调用 createOperationsForArchive 为此组件中的所有存档。

另请参阅 component::addOperation


void createOperationsForArchive(string archive)

为安装此组件的 archive 创建所需的所有操作。此方法从 createOperations 中调用。您可以通过在组件脚本中提供相同名称的方法来覆盖此方法。

注意: 如果您从脚本调用此方法,它不会调用具有相同名称的脚本方法。

默认实现对此存档中的所有内容调用 createOperationsForPath。如果 archive 是安装程序系统所知的压缩存档,则将创建一个 Extraction 操作。


void createOperationsForPath(string path)

为安装此组件的 path 创建所需的所有操作。path 是一个包含组件名称的完全限定文件名。此方法从 createOperationsForArchive 中调用。您可以通过在组件脚本中提供相同名称的方法来覆盖它。

注意: 此方法将省略 RSA 签名文件。

注意: 如果您从脚本调用此方法,它不会调用具有相同名称的脚本方法。

默认实现在 path 中的所有文件和文件夹中递归创建 Copy 和 Mkdir 操作。


布尔型 installationRequested()

确定用户是否想要安装组件。


布尔值 isForcedUpdate()

如果组件已安装并设置了ForcedUpdate标志,则返回true。强制更新将在其他组件更新或安装之前与基本组件一起更新。


布尔值 isFromOnlineRepository()

确定该组件是否是从在线仓库加载的。

另请参阅addDownloadableArchivefromOnlineRepository.


布尔值 isInstalled()

确定组件是否已安装。


布尔值 isUninstalled()

确定组件是否已卸载。


布尔值 isUpdateAvailable()

确定是否可以为组件提供更新。


void registerPathForUninstallation(字符串 path, 布尔值 wipe = false)

将路径path下文件或目录注册为卸载时将一起删除。如果是目录,则将是递归的。如果将wipe设置为true,且该目录包含在安装后由用户所做的更改,则也将删除目录。


void removeDownloadableArchive(字符串 path)

从该组件移除通过addDownloadableArchive先前添加的存档path。这只能在从在线仓库下载此组件时调用。

另请参阅addDownloadableArchivefromOnlineRepositoryarchives.


void removeStopProcessForUpdateRequest(字符串 process)

再次移除退出进程process的请求。


void setAutoCreateOperations(布尔值 autoCreateOperations)

autoCreateOperations属性的值设置为autoCreateOperations


void setInstalled()

将组件状态设置为已安装。

另请参阅isInstalled


void setStopProcessForUpdateRequest(字符串 process, 布尔值 requested)

根据requested的值(添加true或移除false)向停止进程process的请求添加或删除方便方法。


void setUninstalled()

将组件状态设置为未安装。

另请参阅isUninstalled


void setUpdateAvailable(布尔值 isUpdateAvailable)

设置标志,根据isUpdateAvailable的值,核心发现了一个更新。

另请参阅isUpdateAvailable


void setValue(字符串 key, 字符串 value)

将带key的变量值设置为value

另请参阅value


布尔值 uninstallationRequested()

确定用户是否想要卸载该组件。


布尔值 updateRequested()

确定用户是否想要安装该组件的更新。


QWidget userInterface(string name)

返回为name创建的(QWidget)或如果小部件已被删除或找不到,返回0


string value(string key, string defaultValue = "")

返回变量名key的值。如果key尚不为人知,则返回defaultValue

注意:如果一个组件是虚拟的,并且您使用“默认”键请求该组件的值,它将始终返回false

另请参阅:setValue().


©2021 The Qt Company Ltd. 包含在此处的文档贡献是各自所有者的版权。所提供的文档是根据自由软件基金会发布的GNU自由文档许可协议版本1.3的条款进行许可的。Qt公司、Qt及其相应标志是芬兰的The Qt Company Ltd及其在世界其他国家的商标。所有其他商标均为各自所有者的财产。