QIfConfiguration 类

QIfConfiguration 为 QIfAbstractFeatureQIfServiceObjectQIfSimulationEngine 提供设置。更多信息...

头文件 #include <QIfConfiguration>
qmakeQT += interfaceframework
自从Qt 6.5
被实例化 InterfaceFrameworkConfiguration
继承自 QObjectQQmlParserStatus

属性

公共函数

QIfConfiguration(const QString &name = QString(), QObject *parent = nullptr)
QIfAbstractFeature::DiscoveryModediscoveryMode() const
boolignoreOverrideWarnings() const
boolisValid() const
QStringname() const
QStringListpreferredBackends() const
QIfServiceObject *serviceObject() const
QVariantMapserviceSettings() const
QStringsimulationDataFile() const
QStringsimulationFile() const

公共槽

boolsetDiscoveryMode(QIfAbstractFeature::DiscoveryMode discoveryMode)
voidsetIgnoreOverrideWarnings(bool ignoreOverrideWarnings)
boolsetName(const QString &name)
boolsetPreferredBackends(const QStringList &preferredBackends)
boolsetServiceObject(QIfServiceObject *serviceObject)
boolsetServiceSettings(const QVariantMap &serviceSettings)
boolsetSimulationDataFile(const QString &simulationDataFile)
boolsetSimulationFile(const QString &simulationFile)

信号

voiddiscoveryModeChanged(QIfAbstractFeature::DiscoveryMode discoveryMode)
voidignoreOverrideWarningsChanged(bool ignoreOverrideWarnings)
voidisValidChanged(bool isValid)
voidnameChanged(const QString &name)
voidpreferredBackendsChanged(const QStringList &preferredBackends)
voidserviceObjectChanged(const QIfServiceObject *serviceObject)
voidserviceSettingsChanged(const QVariantMap &serviceSettings)
voidsimulationDataFileChanged(const QString &simulationDataFile)
voidsimulationFileChanged(const QString &simulationFile)

静态公有成员

boolarePreferredBackendsSet(const QString &group)
boolareServiceSettingsSet(const QString &group)
QIfAbstractFeature::DiscoveryModediscoveryMode(const QString &group)
boolexists(const QString &group)
boolisDiscoveryModeSet(const QString &group)
boolisServiceObjectSet(const QString &group)
boolisSimulationDataFileSet(const QString &group)
boolisSimulationFileSet(const QString &group)
QStringListpreferredBackends(const QString &group)
QIfServiceObject *serviceObject(const QString &group)
QVariantMapserviceSettings(const QString &group)
boolsetDiscoveryMode(const QString &group, QIfAbstractFeature::DiscoveryMode discoveryMode)
boolsetPreferredBackends(const QString &group, const QStringList &preferredBackends)
boolsetServiceObject(const QString &group, QIfServiceObject *serviceObject)
boolsetServiceSettings(const QString &group, const QVariantMap &serviceSettings)
boolsetSimulationDataFile(const QString &group, const QString &simulationDataFile)
boolsetSimulationFile(const QString &group, const QString &simulationFile)
QStringsimulationDataFile(const QString &group)
QStringsimulationFile(const QString &group)

详细描述

QIfConfiguration为QIfAbstractFeatureQIfServiceObjectQIfSimulationEngine提供设置。使用QIfConfiguration配置的所有设置都应用于具有匹配configurationId的所有对象。对于QIfSimulationEngine,标识符充当configurationId

创建支持类的新实例后,如果其configurationId与之前创建的配置匹配,则配置中的所有设置也会应用于新实例。

注意:从QIfConfiguration读取值 NOT 读取所有匹配 configurationId 的实例的当前值。它只返回配置中存储的值,这些值可能不同,因为它仍然可能在不涉及 QIfConfiguration 的情况下直接更改值。它对所有匹配的实例作为写入-only 接口。

以下示例说明如何创建配置

// Create a class based on QIfAbstractFeature and set it's configuration id to "group1"
auto feature1 = new AbstractFeatureBasedClass;
feature1.setConfigurationId("group1");

// Create another one, but with configuration id "group2"
auto feature2 = new AbstractFeatureBasedClass;
feature2.setConfigurationId("group2");

// The discoveryMode of all feature based instances in "group1" should be LoadOnlyProductionBackends
QIfConfiguration::setDiscoveryMode("group1", QIfAbstractFeature::LoadOnlyProductionBackends);

qDebug() << feature1.discoveryMode() << feature2.discoveryMode();

此配置仅适用于 'feature1',而不适用于 'feature2',因为后者不在 'group1' 中,并且 'group2' 尚未配置任何值(设置)。

通过添加另一个配置,也可以更改 feature2

QIfConfiguration config("group2");
config.setDiscoeryMode(QIfAbstractFeature::LoadOnlyProductionBackends);

qDebug() << feature1.discoveryMode() << feature2.discoveryMode();

现在 'feature1' 和 'feature2' 有相同的 discoveryMode。使用 QIfConfiguration 的实例是使用静态函数的替代方法。

注意:销毁 QIfConfiguration 并不会重置已配置的值。

QML 集成

可以通过实例化 InterfaceFrameworkConfiguration 元素并将名称分配给它从 QML 创建配置。如果没有名称,配置则无效,并且分配的值将不起作用。

设置文件

除了在运行时创建配置之外,还可以在配置文件中提供初始配置值。

启动时,如果存在以下文件会被解析

[QLibraryInfo::DataPath]/qtifconfig.ini

配置文件使用 INI 格式,并适用于所有可以作为字符串保存的类型。这不包括例如 serviceObject 设置。有关所有设置和如何设置/覆盖它们的列表,请参阅设置概述

以下是一个配置 group1 和 group2 的示例

[group1]
preferredBackends=backend1,backend2
serviceSettings/key1=value1
serviceSettings/key2=value2
[group2]
discoveryMode=LoadOnlySimulationBackends

对于 serviceSettings 设置,一个语句中不能分配多个值。相反,每个键值对都需要单独分配。键跟随 serviceSettings 关键字,后跟一个斜杠作为分隔符。以类似的方式,可以创建嵌套的键值对

[group1]
serviceSettings/key1/nested1=value1
serviceSettings/key1/nested2=value2

环境覆盖

在某些测试场景中,有时需要覆盖某些设置。这可以通过使用 OVERRIDE 环境变量之一来实现。一旦设置覆盖,则运行时无法再更改值,并且在尝试更改时会显示警告。有关如何关闭此功能,请参阅ignoreOverrideWarnings 属性。

所有 OVERRIDE 环境变量都必须以下列形式

OVERRIDE=<CONFIGURATIONID>=<VALUE>[;<CONFIGURATIONID>=<VALUE>]

有关所有设置和如何设置/覆盖它们的列表,请参阅设置概述

设置概述

设置影响的类支持初始值覆盖环境变量
serviceSettingsQIfServiceObject-
simulationFileQIfSimulationEngineQTIF_SIMULATION_OVERRIDE
simulationDataFileQIfSimulationEngineQTIF_SIMULATION_DATA_OVERRIDE
discoveryModeQIfAbstractFeature QIfAbstractFeatureListModelQTIF_DISCOVERY_MODE_OVERRIDE
preferredBackendsQIfAbstractFeature QIfAbstractFeatureListModelQTIF_PREFERRED_BACKENDS_OVERRIDE
serviceObjectQIfAbstractFeature QIfAbstractFeatureListModel-

属性文档

discoveryMode : QIfAbstractFeature::DiscoveryMode

保存配置的发现模式。发现模式应用于所有具有匹配配置ID的 QIfAbstractFeatureQIfAbstractFeatureListModel 实例。当创建新的匹配实例时应用发现模式,并且也应用于所有现有实例。

有关提供初始值和覆盖的说明,请参阅 设置概览

访问函数

QIfAbstractFeature::DiscoveryModediscoveryMode() const
QIfAbstractFeature::DiscoveryModediscoveryMode(const QString &group)
boolsetDiscoveryMode(QIfAbstractFeature::DiscoveryMode discoveryMode)
boolsetDiscoveryMode(const QString &group, QIfAbstractFeature::DiscoveryMode discoveryMode)

通知信号

voiddiscoveryModeChanged(QIfAbstractFeature::DiscoveryMode discoveryMode)

另请参阅QIfAbstractFeature::discoveryModeQIfAbstractFeatureListModel::discoveryMode

ignoreOverrideWarnings : bool

启用后,将忽略所有覆盖警告,并且不会记录。

访问函数

boolignoreOverrideWarnings() const
voidsetIgnoreOverrideWarnings(bool ignoreOverrideWarnings)

通知信号

voidignoreOverrideWarningsChanged(bool ignoreOverrideWarnings)

另请参阅环境覆盖

name : QString

保存配置的名称。名称用于根据配置ID查找对象,以便应用设置到这些对象。

注意:名称设置后不能更改。

访问函数

QStringname() const
boolsetName(const QString &name)

通知信号

voidnameChanged(const QString &name)

preferredBackends : QStringList

保存配置的首选后端。首选后端应用于所有具有匹配配置ID的 QIfAbstractFeatureQIfAbstractFeatureListModel 实例。当创建新的匹配实例时应用首选后端,并且也应用于所有现有实例。

有关提供初始值和覆盖的说明,请参阅 设置概览

访问函数

QStringListpreferredBackends() const
QStringListpreferredBackends(const QString &group)
boolsetPreferredBackends(const QStringList &preferredBackends)
boolsetPreferredBackends(const QString &group, const QStringList &preferredBackends)

通知信号

voidpreferredBackendsChanged(const QStringList &preferredBackends)

另请参阅QIfAbstractFeature::preferredBackendsQIfAbstractFeatureListModel::preferredBackends

serviceObject : QIfServiceObject*

包含配置的服务对象。服务对象应用于所有匹配配置ID的QIfAbstractFeatureQIfAbstractFeatureListModel实例。当创建新匹配实例时,应用服务对象,并且它也应用于所有现有实例。

有关提供初始值和覆盖的说明,请参阅 设置概览

访问函数

QIfServiceObject *serviceObject() const
QIfServiceObject *serviceObject(const QString &group)
boolsetServiceObject(QIfServiceObject *serviceObject)
boolsetServiceObject(const QString &group, QIfServiceObject *serviceObject)

通知信号

voidserviceObjectChanged(const QIfServiceObject *serviceObject)

另见QIfAbstractFeature::serviceObjectQIfAbstractFeatureListModel::serviceObject

serviceSettings : QVariantMap

包含配置的服务设置。服务设置应用于所有匹配配置ID的QIfServiceObject实例。当创建新匹配的QIfServiceObject实例时,应用服务设置,并且它们也应用于所有现有的QIfServiceObject实例。

有关提供初始值和覆盖的说明,请参阅 设置概览

访问函数

QVariantMapserviceSettings() const
QVariantMapserviceSettings(const QString &group)
boolsetServiceSettings(const QVariantMap &serviceSettings)
boolsetServiceSettings(const QString &group, const QVariantMap &serviceSettings)

通知信号

voidserviceSettingsChanged(const QVariantMap &serviceSettings)

另见QIfServiceObject::serviceSettings

simulationDataFile : QString

包含配置的模拟数据文件。模拟数据文件设置为所有匹配的QIfSimulationEngine实体的覆盖。

如果匹配的QIfSimulationeEngine已经运行,更新值没有作用,模拟将继续运行。

有关提供初始值和覆盖的说明,请参阅 设置概览

访问函数

QStringsimulationDataFile() const
QStringsimulationDataFile(const QString &group)
boolsetSimulationDataFile(const QString &simulationDataFile)
boolsetSimulationDataFile(const QString &group, const QString &simulationDataFile)

通知信号

voidsimulationDataFileChanged(const QString &simulationDataFile)

另见QIfSimulationEngine::loadSimulationData

simulationFile : QString

包含配置的模拟文件。模拟文件设置为所有匹配的QIfSimulationEngine实体的覆盖。

如果匹配的QIfSimulationeEngine已经运行,更新值没有作用,模拟将继续运行。

有关提供初始值和覆盖的说明,请参阅 设置概览

访问函数

QStringsimulationFile() const
QStringsimulationFile(const QString &group)
boolsetSimulationFile(const QString &simulationFile)
boolsetSimulationFile(const QString &group, const QString &simulationFile)

通知信号

voidsimulationFileChanged(const QString &simulationFile)

另请参阅QIfSimulationEngine::loadSimulation().

[只读] valid : const bool

当配置实例有效时返回 true

只有当配置是使用名称创建时,它才是有效的。

访问函数

boolisValid() const

通知信号

voidisValidChanged(bool isValid)

成员函数文档

[显式] QIfConfiguration::QIfConfiguration(const QString &name = QString(), QObject *parent = nullptr)

使用名称和父对象构造 QIfConfiguration 实例

[静态] bool QIfConfiguration::arePreferredBackendsSet(const QString &group)

当在名为 group 的配置中设置了首选后端时返回 true,否则返回 false。

当对应的设置函数被调用、在全局 ini 文件中设置了有效值或相应的覆盖项已激活时,一个值被认为是"已设置"。

另请参阅设置文件.

[静态] bool QIfConfiguration::areServiceSettingsSet(const QString &group)

当在名为 group 的配置中设置了服务设置时返回 true,否则返回 false。

当对应的设置函数被调用、在全局 ini 文件中设置了有效值或相应的覆盖项已激活时,一个值被认为是"已设置"。

另请参阅设置文件.

[静态] QIfAbstractFeature::DiscoveryMode QIfConfiguration::discoveryMode(const QString &group)

返回配置 group 当前发现模式。

注意:返回的值是配置内部存储的值,而不是所有具有匹配配置 Id 的 QIfAbstractFeatureQIfAbstractFeatureListModel 实例的当前值。

注意:discoveryMode 属性的获取函数。

另请参阅setDiscoveryMode().

[静态] bool QIfConfiguration::exists(const QString &group)

如果配置 group 存在则返回 true

一旦在配置中设置了单个值,就会创建一个配置。

[静态] bool QIfConfiguration::isDiscoveryModeSet(const QString &group)

在名为 group 的配置中设置了发现模式时返回 true,否则返回 false。

当对应的设置函数被调用、在全局 ini 文件中设置了有效值或相应的覆盖项已激活时,一个值被认为是"已设置"。

另请参阅设置文件.

[静态] bool QIfConfiguration::isServiceObjectSet(const QString &group)

在名为 group 的配置中设置了服务对象时返回 true,否则返回 false。

当对应的设置函数被调用、在全局 ini 文件中设置了有效值或相应的覆盖项已激活时,一个值被认为是"已设置"。

另请参阅设置文件.

[静态] bool QIfConfiguration::isSimulationDataFileSet(const QString &group)

当配置中名为 group 的模拟数据文件已被设置时,返回 true,否则返回 false。

当对应的设置函数被调用、在全局 ini 文件中设置了有效值或相应的覆盖项已激活时,一个值被认为是"已设置"。

另请参阅设置文件.

[静态] bool QIfConfiguration::isSimulationFileSet(const QString &group)

当配置 group 中的模拟文件已被设置时,返回 true,否则返回 false。

当对应的设置函数被调用、在全局 ini 文件中设置了有效值或相应的覆盖项已激活时,一个值被认为是"已设置"。

另请参阅设置文件.

[静态] QStringList QIfConfiguration::preferredBackends(const QString &group)

返回配置 group 的当前首选后端。

注意:返回的值是配置内部存储的值,而不是所有具有匹配配置 Id 的 QIfAbstractFeatureQIfAbstractFeatureListModel 实例的当前值。

注意:是属性 preferredBackends 的获取器。

另请参阅setPreferredBackends

[静态] QIfServiceObject *QIfConfiguration::serviceObject(const QString &group)

返回配置 group 的当前服务对象。

注意:返回的值是配置内部存储的值,而不是所有具有匹配配置 Id 的 QIfAbstractFeatureQIfAbstractFeatureListModel 实例的当前值。

注意:是属性 serviceObject 的获取器。

另请参阅setServiceObject

[静态] QVariantMap QIfConfiguration::serviceSettings(const QString &group)

返回配置 group 的当前服务设置。

注意:返回值是配置中存储的值,而不是匹配 QIfServiceObject 实例的所有当前值的总和。

注意:是属性 serviceSettings 的获取器。

另请参阅setServiceSettings

[槽函数] bool QIfConfiguration::setDiscoveryMode(QIfAbstractFeature::DiscoveryMode discoveryMode)

设置此配置的 discoveryMode 并将其应用到所有匹配配置Id的 QIfAbstractFeatureQIfAbstractFeatureListModel 实例。

如果在设置 discoveryMode 时失败(因为活动了覆盖),返回 false,否则返回 true

注意:是属性 discoveryMode 的设置器。

另请参阅discoveryMode() 和 环境覆盖

[静态] bool QIfConfiguration::setDiscoveryMode(const QString &group, QIfAbstractFeature::DiscoveryMode discoveryMode)

设置配置 groupdiscoveryMode 并将其应用到所有匹配配置Id的 QIfAbstractFeatureQIfAbstractFeatureListModel 实例。

如果设置serviceObject失败(因为存在覆盖),则返回false;否则返回true

注意:是属性 discoveryMode 的设置器。

另请参阅环境覆盖

[slot] bool QIfConfiguration::setName(const QString &name)

设置配置的name

使用名称查找具有匹配配置Id的对象,以便应用此配置的所有设置。

如果设置名称失败,例如当存在具有此名称的实例或实例已设置名称时,返回false。一旦设置,实例的名称就无法更改。否则返回true

注意:属性name的设置函数。

另请参阅:name()。

[slot] bool QIfConfiguration::setPreferredBackends(const QStringList &preferredBackends)

设置此配置的preferredBackends并将其应用于所有具有匹配配置Id的QIfAbstractFeatureQIfAbstractFeatureListModel实例。

如果设置preferredBackends失败(因为存在覆盖),则返回false;否则返回true

注意:属性preferredBackends的设置函数。

另请参阅:preferredBackends()和环境覆盖

[static] bool QIfConfiguration::setPreferredBackends(const QString &group, const QStringList &preferredBackends)

设置配置组grouppreferredBackends并将其应用于所有具有匹配配置Id的QIfAbstractFeatureQIfAbstractFeatureListModel实例。

如果设置serviceObject失败(因为存在覆盖),则返回false;否则返回true

注意:属性preferredBackends的设置函数。

另请参阅环境覆盖

[slot] bool QIfConfiguration::setServiceObject(QIfServiceObject *serviceObject)

设置此配置的serviceObject并将其应用于所有具有匹配配置Id的QIfAbstractFeatureQIfAbstractFeatureListModel实例。

如果设置serviceObject失败(因为存在覆盖),则返回false;否则返回true

注意:属性serviceObject的设置函数。

另请参阅:serviceObject()和环境覆盖

[static] bool QIfConfiguration::setServiceObject(const QString &group, QIfServiceObject *serviceObject)

设置配置组的 serviceObject 并将其应用于所有具有匹配配置Id的 QIfAbstractFeatureQIfAbstractFeatureListModel 实例。

如果设置serviceObject失败(因为存在覆盖),则返回false;否则返回true

注意:属性serviceObject的设置函数。

另请参阅环境覆盖

[slot] bool QIfConfiguration::setServiceSettings(const QVariantMap &serviceSettings)

设置此配置的 serviceSettings 并将其应用于所有与配置Id匹配的 QIfServiceObject 实例。

如果设置serviceObject失败(因为存在覆盖),则返回false;否则返回true

注意:属性 serviceSettings 的设置器函数。

另请参阅:serviceSettings() 和 环境覆盖

[static] bool QIfConfiguration::setServiceSettings(const QString &group, const QVariantMap &serviceSettings)

设置配置组 groupserviceSettings 并将其应用于所有与配置Id匹配的 QIfServiceObject 实例。

如果设置serviceObject失败(因为存在覆盖),则返回false;否则返回true

注意:属性 serviceSettings 的设置器函数。

另请参阅环境覆盖

[slot] bool QIfConfiguration::setSimulationDataFile(const QString &simulationDataFile)

设置此配置的 simulationDataFile 并将其应用于所有与配置Id匹配的 QIfSimulationEngine 实例。

如果设置 simulationDataFile 失败(因为活动覆盖),则返回 false;否则返回 true

注意:属性 simulationDataFile 的设置器函数。

另请参阅:simulationDataFile() 和 环境覆盖

[static] bool QIfConfiguration::setSimulationDataFile(const QString &group, const QString &simulationDataFile)

设置配置组 groupsimulationDataFile 并将其应用于所有与配置Id匹配的 QIfSimulationEngine 实例。

如果设置 simulationDataFile 失败(因为活动覆盖),则返回 false;否则返回 true

注意:属性 simulationDataFile 的设置器函数。

另请参阅环境覆盖

[slot] bool QIfConfiguration::setSimulationFile(const QString &simulationFile)

设置此配置的 simulationFile 并将其应用于所有与配置Id匹配的 QIfSimulationEngine 实例。

如果设置 simulationFile 失败(因为活动覆盖),则返回 false;否则返回 true

注意:属性 simulationFile 的设置器函数。

另请参阅:simulationFile() 和 环境覆盖

[static] bool QIfConfiguration::setSimulationFile(const QString &group, const QString &simulationFile)

设置配置groupsimulationFile并将其应用于所有配置id匹配的QIfSimulationEngine实例。

如果设置 simulationDataFile 失败(因为活动覆盖),则返回 false;否则返回 true

注意:属性 simulationFile 的设置器函数。

另请参阅环境覆盖

[static] QString QIfConfiguration::simulationDataFile(const QString &group)

返回配置group当前的模拟数据文件。

注意: 返回的值是配置中存储的内容,而不是对应配置id的所有QIfSimulationEngine实例的当前值。

注意: simulationDataFile属性的获取函数。

另请参阅setSimulationDataFile().

[static] QString QIfConfiguration::simulationFile(const QString &group)

返回配置group当前的模拟文件。

注意: 返回的值是配置中存储的内容,而不是对应配置id的所有QIfSimulationEngine实例的当前值。

注意: simulationFile属性的获取函数。

另请参阅setSimulationFile().

© 2024 Qt公司。包含在此处的文档贡献是各自所有者的版权。提供的文档根据GNU自由文档许可版1.3许可,由自由软件基金会发布。Qt及其对应标志是Qt公司在内的芬兰及/或全球多个国家的商标。所有其他商标均为其各自所有者的财产。