抽象功能 QML 类型
AbstractFeature 不可直接访问。该 QML 类型提供功能的基本 QML 属性,如自动发现和 isValid。 更多信息...
导入语句 | import QtInterfaceFramework |
实例化 | QIfAbstractFeature |
继承自 |
属性
- configurationId : string
- discoveryMode : enumeration
- discoveryResult : enumeration
- isInitialized : bool
- isValid : bool
- preferredBackends : list<string>
- serviceObject : ServiceObject
方法
- 枚举 startAutoDiscovery()
详细描述
一旦 AbstractFeature 通过 QML 实例化,自动发现就会自动启动。要禁用此行为,可以将 discoveryMode 设置为 NoDiscovery
;
属性文档
configurationId : string |
存储用于确定此功能属于哪个配置的 id。
一旦设置了 id,就可以使用 InterfaceFrameworkConfiguration API 来更改某些值。
注意:在匹配的 InterfaceFrameworkConfiguration 中设置的值可以覆盖组件创建期间设置的初始值。
discoveryMode : enumeration |
存储用于自动发现的模式
可用的值包括
常量 | 描述 |
---|---|
NoAutoDiscovery | 不执行自动发现,需要手动设置 ServiceObject。 |
AutoDiscovery | 尝试查找匹配接口的生产后端,如果找不到则回退到模拟后端。 |
LoadOnlyProductionBackends | 仅尝试加载匹配接口的生产后端。 |
LoadOnlySimulationBackends | 仅尝试加载匹配接口的模拟后端。 |
如果需要,一旦特性创建完成,将启动自动发现。
注意:如果在功能实例化之后更改此属性,请务必调用 startAutoDiscovery() 以搜索新的服务对象。
discoveryResult : 枚举 |
上次自动发现的结果
可用的值包括
常量 | 描述 |
---|---|
NoResult | 指示因为没有为功能分配有效的 ServiceObject,而没有启动自动发现。 |
ErrorWhileLoading | 在搜索匹配接口的后端时发生错误。 |
ProductionBackendLoaded | 由于自动发现,已经加载了生产后端。 |
SimulationBackendLoaded | 由于自动发现,已经加载了模拟后端。 |
isInitialized : bool |
指示功能是否已使用后端的所有值初始化。
后端发送了 QIfFeatureInterface::initializationDone 信号后,此属性为 true
,表明现在所有值都已使用后端值初始化。
isValid : bool |
指示功能是否就绪供使用。
如果功能准备好使用,则此属性为 true
,否则为 false
。通常,这表明无法找到合适的对象,或者未触发自动发现。
后端可能尚未发送所有属性且尚未完全初始化。使用 isInitialized 来检查功能是否包含所有正确的值。
包含用于在自动发现期间加载首选后端的通配符列表。
自动发现机制将自动搜索为该功能实现提供匹配接口的后端。有关更多信息,请参阅 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.和/或全球其他国家的商标。所有其他商标均为其各自所有者的财产。