QIfConfiguration 类
QIfConfiguration 为 QIfAbstractFeature、QIfServiceObject 和 QIfSimulationEngine 提供设置。更多信息...
头文件 | #include <QIfConfiguration> |
qmake | QT += interfaceframework |
自从 | Qt 6.5 |
被实例化 | InterfaceFrameworkConfiguration |
继承自 | QObject 和 QQmlParserStatus |
属性
|
|
公共函数
QIfConfiguration(const QString &name = QString(), QObject *parent = nullptr) | |
QIfAbstractFeature::DiscoveryMode | discoveryMode() const |
bool | ignoreOverrideWarnings() const |
bool | isValid() const |
QString | name() const |
QStringList | preferredBackends() const |
QIfServiceObject * | serviceObject() const |
QVariantMap | serviceSettings() const |
QString | simulationDataFile() const |
QString | simulationFile() const |
公共槽
bool | setDiscoveryMode(QIfAbstractFeature::DiscoveryMode discoveryMode) |
void | setIgnoreOverrideWarnings(bool ignoreOverrideWarnings) |
bool | setName(const QString &name) |
bool | setPreferredBackends(const QStringList &preferredBackends) |
bool | setServiceObject(QIfServiceObject *serviceObject) |
bool | setServiceSettings(const QVariantMap &serviceSettings) |
bool | setSimulationDataFile(const QString &simulationDataFile) |
bool | setSimulationFile(const QString &simulationFile) |
信号
void | discoveryModeChanged(QIfAbstractFeature::DiscoveryMode discoveryMode) |
void | ignoreOverrideWarningsChanged(bool ignoreOverrideWarnings) |
void | isValidChanged(bool isValid) |
void | nameChanged(const QString &name) |
void | preferredBackendsChanged(const QStringList &preferredBackends) |
void | serviceObjectChanged(const QIfServiceObject *serviceObject) |
void | serviceSettingsChanged(const QVariantMap &serviceSettings) |
void | simulationDataFileChanged(const QString &simulationDataFile) |
void | simulationFileChanged(const QString &simulationFile) |
静态公有成员
bool | arePreferredBackendsSet(const QString &group) |
bool | areServiceSettingsSet(const QString &group) |
QIfAbstractFeature::DiscoveryMode | discoveryMode(const QString &group) |
bool | exists(const QString &group) |
bool | isDiscoveryModeSet(const QString &group) |
bool | isServiceObjectSet(const QString &group) |
bool | isSimulationDataFileSet(const QString &group) |
bool | isSimulationFileSet(const QString &group) |
QStringList | preferredBackends(const QString &group) |
QIfServiceObject * | serviceObject(const QString &group) |
QVariantMap | serviceSettings(const QString &group) |
bool | setDiscoveryMode(const QString &group, QIfAbstractFeature::DiscoveryMode discoveryMode) |
bool | setPreferredBackends(const QString &group, const QStringList &preferredBackends) |
bool | setServiceObject(const QString &group, QIfServiceObject *serviceObject) |
bool | setServiceSettings(const QString &group, const QVariantMap &serviceSettings) |
bool | setSimulationDataFile(const QString &group, const QString &simulationDataFile) |
bool | setSimulationFile(const QString &group, const QString &simulationFile) |
QString | simulationDataFile(const QString &group) |
QString | simulationFile(const QString &group) |
详细描述
QIfConfiguration为QIfAbstractFeature、QIfServiceObject和QIfSimulationEngine提供设置。使用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>]
有关所有设置和如何设置/覆盖它们的列表,请参阅设置概述。
设置概述
设置 | 影响的类 | 支持初始值 | 覆盖环境变量 |
---|---|---|---|
serviceSettings | QIfServiceObject | 是 | - |
simulationFile | QIfSimulationEngine | 是 | QTIF_SIMULATION_OVERRIDE |
simulationDataFile | QIfSimulationEngine | 是 | QTIF_SIMULATION_DATA_OVERRIDE |
discoveryMode | QIfAbstractFeature QIfAbstractFeatureListModel | 是 | QTIF_DISCOVERY_MODE_OVERRIDE |
preferredBackends | QIfAbstractFeature QIfAbstractFeatureListModel | 是 | QTIF_PREFERRED_BACKENDS_OVERRIDE |
serviceObject | QIfAbstractFeature QIfAbstractFeatureListModel | 否 | - |
属性文档
discoveryMode : QIfAbstractFeature::DiscoveryMode
保存配置的发现模式。发现模式应用于所有具有匹配配置ID的 QIfAbstractFeature 或 QIfAbstractFeatureListModel 实例。当创建新的匹配实例时应用发现模式,并且也应用于所有现有实例。
有关提供初始值和覆盖的说明,请参阅 设置概览。
访问函数
QIfAbstractFeature::DiscoveryMode | discoveryMode() const |
QIfAbstractFeature::DiscoveryMode | discoveryMode(const QString &group) |
bool | setDiscoveryMode(QIfAbstractFeature::DiscoveryMode discoveryMode) |
bool | setDiscoveryMode(const QString &group, QIfAbstractFeature::DiscoveryMode discoveryMode) |
通知信号
void | discoveryModeChanged(QIfAbstractFeature::DiscoveryMode discoveryMode) |
另请参阅QIfAbstractFeature::discoveryMode 和 QIfAbstractFeatureListModel::discoveryMode。
ignoreOverrideWarnings : bool
启用后,将忽略所有覆盖警告,并且不会记录。
访问函数
bool | ignoreOverrideWarnings() const |
void | setIgnoreOverrideWarnings(bool ignoreOverrideWarnings) |
通知信号
void | ignoreOverrideWarningsChanged(bool ignoreOverrideWarnings) |
另请参阅环境覆盖。
name : QString
保存配置的名称。名称用于根据配置ID查找对象,以便应用设置到这些对象。
注意:名称设置后不能更改。
访问函数
QString | name() const |
bool | setName(const QString &name) |
通知信号
void | nameChanged(const QString &name) |
preferredBackends : QStringList
保存配置的首选后端。首选后端应用于所有具有匹配配置ID的 QIfAbstractFeature 或 QIfAbstractFeatureListModel 实例。当创建新的匹配实例时应用首选后端,并且也应用于所有现有实例。
有关提供初始值和覆盖的说明,请参阅 设置概览。
访问函数
QStringList | preferredBackends() const |
QStringList | preferredBackends(const QString &group) |
bool | setPreferredBackends(const QStringList &preferredBackends) |
bool | setPreferredBackends(const QString &group, const QStringList &preferredBackends) |
通知信号
void | preferredBackendsChanged(const QStringList &preferredBackends) |
另请参阅QIfAbstractFeature::preferredBackends 和 QIfAbstractFeatureListModel::preferredBackends。
serviceObject : QIfServiceObject*
包含配置的服务对象。服务对象应用于所有匹配配置ID的QIfAbstractFeature或QIfAbstractFeatureListModel实例。当创建新匹配实例时,应用服务对象,并且它也应用于所有现有实例。
有关提供初始值和覆盖的说明,请参阅 设置概览。
访问函数
QIfServiceObject * | serviceObject() const |
QIfServiceObject * | serviceObject(const QString &group) |
bool | setServiceObject(QIfServiceObject *serviceObject) |
bool | setServiceObject(const QString &group, QIfServiceObject *serviceObject) |
通知信号
void | serviceObjectChanged(const QIfServiceObject *serviceObject) |
另见QIfAbstractFeature::serviceObject和QIfAbstractFeatureListModel::serviceObject。
serviceSettings : QVariantMap
包含配置的服务设置。服务设置应用于所有匹配配置ID的QIfServiceObject实例。当创建新匹配的QIfServiceObject实例时,应用服务设置,并且它们也应用于所有现有的QIfServiceObject实例。
有关提供初始值和覆盖的说明,请参阅 设置概览。
访问函数
QVariantMap | serviceSettings() const |
QVariantMap | serviceSettings(const QString &group) |
bool | setServiceSettings(const QVariantMap &serviceSettings) |
bool | setServiceSettings(const QString &group, const QVariantMap &serviceSettings) |
通知信号
void | serviceSettingsChanged(const QVariantMap &serviceSettings) |
另见QIfServiceObject::serviceSettings。
simulationDataFile : QString
包含配置的模拟数据文件。模拟数据文件设置为所有匹配的QIfSimulationEngine实体的覆盖。
如果匹配的QIfSimulationeEngine已经运行,更新值没有作用,模拟将继续运行。
有关提供初始值和覆盖的说明,请参阅 设置概览。
访问函数
QString | simulationDataFile() const |
QString | simulationDataFile(const QString &group) |
bool | setSimulationDataFile(const QString &simulationDataFile) |
bool | setSimulationDataFile(const QString &group, const QString &simulationDataFile) |
通知信号
void | simulationDataFileChanged(const QString &simulationDataFile) |
另见QIfSimulationEngine::loadSimulationData。
simulationFile : QString
包含配置的模拟文件。模拟文件设置为所有匹配的QIfSimulationEngine实体的覆盖。
如果匹配的QIfSimulationeEngine已经运行,更新值没有作用,模拟将继续运行。
有关提供初始值和覆盖的说明,请参阅 设置概览。
访问函数
QString | simulationFile() const |
QString | simulationFile(const QString &group) |
bool | setSimulationFile(const QString &simulationFile) |
bool | setSimulationFile(const QString &group, const QString &simulationFile) |
通知信号
void | simulationFileChanged(const QString &simulationFile) |
另请参阅QIfSimulationEngine::loadSimulation().
[只读]
valid : const bool
当配置实例有效时返回 true
。
只有当配置是使用名称创建时,它才是有效的。
访问函数
bool | isValid() const |
通知信号
void | isValidChanged(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 的 QIfAbstractFeature 或 QIfAbstractFeatureListModel 实例的当前值。
注意: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 的 QIfAbstractFeature 或 QIfAbstractFeatureListModel 实例的当前值。
注意:是属性 preferredBackends 的获取器。
另请参阅setPreferredBackends。
[静态]
QIfServiceObject *QIfConfiguration::serviceObject(const QString &group)
返回配置 group 的当前服务对象。
注意:返回的值是配置内部存储的值,而不是所有具有匹配配置 Id 的 QIfAbstractFeature 或 QIfAbstractFeatureListModel 实例的当前值。
注意:是属性 serviceObject 的获取器。
另请参阅setServiceObject。
[静态]
QVariantMap QIfConfiguration::serviceSettings(const QString &group)
返回配置 group 的当前服务设置。
注意:返回值是配置中存储的值,而不是匹配 QIfServiceObject 实例的所有当前值的总和。
注意:是属性 serviceSettings 的获取器。
另请参阅setServiceSettings。
[槽函数]
bool QIfConfiguration::setDiscoveryMode(QIfAbstractFeature::DiscoveryMode discoveryMode)
设置此配置的 discoveryMode 并将其应用到所有匹配配置Id的 QIfAbstractFeature 或 QIfAbstractFeatureListModel 实例。
如果在设置 discoveryMode 时失败(因为活动了覆盖),返回 false
,否则返回 true
。
注意:是属性 discoveryMode 的设置器。
另请参阅discoveryMode() 和 环境覆盖。
[静态]
bool QIfConfiguration::setDiscoveryMode(const QString &group, QIfAbstractFeature::DiscoveryMode discoveryMode)
设置配置 group 的 discoveryMode 并将其应用到所有匹配配置Id的 QIfAbstractFeature 或 QIfAbstractFeatureListModel 实例。
如果设置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的QIfAbstractFeature或QIfAbstractFeatureListModel实例。
如果设置preferredBackends失败(因为存在覆盖),则返回false
;否则返回true
。
注意:属性preferredBackends的设置函数。
另请参阅:preferredBackends()和环境覆盖。
[static]
bool QIfConfiguration::setPreferredBackends(const QString &group, const QStringList &preferredBackends)
设置配置组group的preferredBackends并将其应用于所有具有匹配配置Id的QIfAbstractFeature或QIfAbstractFeatureListModel实例。
如果设置serviceObject失败(因为存在覆盖),则返回false
;否则返回true
。
注意:属性preferredBackends的设置函数。
另请参阅环境覆盖。
[slot]
bool QIfConfiguration::setServiceObject(QIfServiceObject *serviceObject)
设置此配置的serviceObject并将其应用于所有具有匹配配置Id的QIfAbstractFeature或QIfAbstractFeatureListModel实例。
如果设置serviceObject失败(因为存在覆盖),则返回false
;否则返回true
。
注意:属性serviceObject的设置函数。
另请参阅:serviceObject()和环境覆盖。
[static]
bool QIfConfiguration::setServiceObject(const QString &group, QIfServiceObject *serviceObject)
设置配置组的 serviceObject 并将其应用于所有具有匹配配置Id的 QIfAbstractFeature 或 QIfAbstractFeatureListModel 实例。
如果设置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)
设置配置组 group 的 serviceSettings 并将其应用于所有与配置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)
设置配置组 group 的 simulationDataFile 并将其应用于所有与配置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)
设置配置group的simulationFile并将其应用于所有配置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公司在内的芬兰及/或全球多个国家的商标。所有其他商标均为其各自所有者的财产。