抽象功能 QML 类型

AbstractFeature 不可直接访问。该 QML 类型提供功能的基本 QML 属性,如自动发现和 isValid更多信息...

导入语句import QtInterfaceFramework
实例化 QIfAbstractFeature
继承自

AbstractZonedFeature

属性

方法

详细描述

一旦 AbstractFeature 通过 QML 实例化,自动发现就会自动启动。要禁用此行为,可以将 discoveryMode 设置为 NoDiscovery;

属性文档

configurationId : string

存储用于确定此功能属于哪个配置的 id。

一旦设置了 id,就可以使用 InterfaceFrameworkConfiguration API 来更改某些值。

注意:在匹配的 InterfaceFrameworkConfiguration 中设置的值可以覆盖组件创建期间设置的初始值。

另请参阅:InterfaceFrameworkConfiguration.


discoveryMode : enumeration

存储用于自动发现的模式

可用的值包括

常量描述
NoAutoDiscovery不执行自动发现,需要手动设置 ServiceObject。
AutoDiscovery尝试查找匹配接口的生产后端,如果找不到则回退到模拟后端。
LoadOnlyProductionBackends仅尝试加载匹配接口的生产后端。
LoadOnlySimulationBackends仅尝试加载匹配接口的模拟后端。

如果需要,一旦特性创建完成,将启动自动发现。

注意:如果在功能实例化之后更改此属性,请务必调用 startAutoDiscovery() 以搜索新的服务对象。


discoveryResult : 枚举 [只读]

上次自动发现的结果

可用的值包括

常量描述
NoResult指示因为没有为功能分配有效的 ServiceObject,而没有启动自动发现。
ErrorWhileLoading在搜索匹配接口的后端时发生错误。
ProductionBackendLoaded由于自动发现,已经加载了生产后端。
SimulationBackendLoaded由于自动发现,已经加载了模拟后端。

isInitialized : bool [只读]

指示功能是否已使用后端的所有值初始化。

后端发送了 QIfFeatureInterface::initializationDone 信号后,此属性为 true,表明现在所有值都已使用后端值初始化。

另请参阅:isValidQIfFeatureInterface::initializationDone


isValid : bool [只读]

指示功能是否就绪供使用。

如果功能准备好使用,则此属性为 true,否则为 false。通常,这表明无法找到合适的对象,或者未触发自动发现。

后端可能尚未发送所有属性且尚未完全初始化。使用 isInitialized 来检查功能是否包含所有正确的值。

另请参阅:QIfServiceObjectdiscoveryModeisInitialized


preferredBackends : list<string>

包含用于在自动发现期间加载首选后端的通配符列表。

自动发现机制将自动搜索为该功能实现提供匹配接口的后端。有关更多信息,请参阅 startAuto Discovery()。

如果有多个后端实现了相同的接口,则可以使用通配符列表来确定要加载的正确后端。

将通配符按顺序应用于找到的后端。如果通配符与某些后端匹配,则将加载这些后端,否则使用下一个通配符。

例如:给定一个带有两个后端(backend_mqtt.so 和 backend_qtro.so)的 AbstractFeature,可以将属性设置为 "*_mqtt*" 以在选择可用时始终选择 backend_mqtt.so 后端。


serviceObject : ServiceObject

设置功能的服务对象。

由于功能仅暴露面向开发者的前端 API,因此需要一个实现实际功能的对象。通常通过自动发现机制检索。

此属性的设置器如果 QIfServiceObject 已经设置为特定实例或 QIfServiceObject不被功能接受,则返回 false。

另请参阅:discoveryMode


方法文档

枚举 startAutoDiscovery()

执行自动发现尝试。

该特性尝试查找一个实现了所需接口的单个ServiceObject。

如果找不到ServiceObject,特性依然无效。如果找到多个ServiceObject,则使用第一个实例。

此函数返回已加载的后端类型;或者错误。

如果将discoveryMode设置为QIfAbstractFeature::NoAutoDiscovery,则此函数不执行任何操作并返回QIfAbstractFeature::NoResult

返回值包括

常量描述
NoResult表示没有开始自动发现,因为该特性已分配了有效的ServiceObject。
ErrorWhileLoading表示在搜索具有匹配接口的后端时发生了错误。
ProductionBackendLoaded由于自动发现,已经加载了生产后端。
SimulationBackendLoaded由于自动发现,已经加载了模拟后端。

另请参阅 动态后端系统QIfServiceManager


© 2024 The Qt Company Ltd. 本文档中包含的贡献的著作权归其各自所有者所有。本文档根据由自由软件基金会发布的GNU自由文档许可1.3版许可使用。Qt及其相关标志是芬兰的The Qt Company Ltd.和/或全球其他国家的商标。所有其他商标均为其各自所有者的财产。