QIfAbstractFeatureListModel 类
QIfAbstractFeatureListModel 是作为模型使用的 QtInterfaceFramework 特性基类。 更多信息...
头文件 | #include <QIfAbstractFeatureListModel> |
qmake | QT += interfaceframework |
由实例化 | AbstractFeatureListModel |
继承 | QAbstractListModel 和 QQmlParserStatus |
继承自 |
属性
|
|
公共函数
QIfAbstractFeatureListModel(const QString &interfaceName, QObject *parent = nullptr) | |
QString | configurationId() const |
QIfAbstractFeature::DiscoveryMode | discoveryMode() const |
QIfAbstractFeature::DiscoveryResult | discoveryResult() const |
QIfAbstractFeature::Error | error() const |
QString | errorMessage() const |
bool | isInitialized() const |
bool | isValid() const |
QStringList | preferredBackends() const |
QIfServiceObject * | serviceObject() const |
公共槽函数
void | setConfigurationId(const QString &configurationId) |
void | setDiscoveryMode(QIfAbstractFeature::DiscoveryMode discoveryMode) |
void | setPreferredBackends(const QStringList &preferredBackends) |
bool | setServiceObject(QIfServiceObject *so) |
QIfAbstractFeature::DiscoveryResult | 开始自动发现() |
信号
void | configurationIdChanged(const QString &configurationId) |
void | discoveryModeChanged(QIfAbstractFeature::DiscoveryMode discoveryMode) |
void | discoveryResultChanged(QIfAbstractFeature::DiscoveryResult discoveryResult) |
void | errorChanged(QIfAbstractFeature::Error error, const QString &message) |
void | isInitializedChanged(bool isInitialized) |
void | isValidChanged(bool arg) |
void | preferredBackendsChanged(const QStringList &preferredBackends) |
void | serviceObjectChanged() |
保护函数
virtual bool | acceptServiceObject(QIfServiceObject *serviceObject) |
virtual void | clearServiceObject() = 0 |
virtual void | connectToServiceObject(QIfServiceObject *serviceObject) |
virtual void | disconnectFromServiceObject(QIfServiceObject *serviceObject) |
QString | errorText() const |
QString | interfaceName() const |
void | setError(QIfAbstractFeature::Error error, const QString &message = QString()) |
保护槽
virtual void | onErrorChanged(QIfAbstractFeature::Error error, const QString &message = QString()) |
详细说明
此类是必要的,以避免从 QAbstractListModel 和 QIfAbstractFeature 继承虚拟。
有关功能如何工作的更多详细信息,请参阅 QIfAbstractFeature。有关 QtInterfaceFramework 中的模型的信息,请参阅 模型。
子类化
您的 QIfAbstractFeatureListModel 子类必须提供从 QIfAbstractFeature 以及从 QAbstractListModel 所有虚函数的实现。
- 有关如何与 动态后端系统 集成的更多详细信息,请参阅 QIfAbstractFeature。
- 有关提供模型的所需功能所需执行的操作的更多详细信息,请参阅 QAbstractListModel - Subclassing。
- 有关实现分页功能的必要 QIfAbstractFeatureListModel 函数的类,请参阅 QIfPagingModel。
属性文档
configurationId : QString
保存标识符以确定该功能属于哪个配置。
一旦设置标识符,就可以使用 QIfConfiguration API 改变某些值。
注意:在匹配的 QIfConfiguration 中设置的值可以覆盖组件创建过程中设置的初始值。
访问函数
QString | configurationId() const |
void | setConfigurationId(const QString &configurationId) |
通知信号
void | configurationIdChanged(const QString &configurationId) |
另请参阅QIfConfiguration。
discoveryMode : QIfAbstractFeature::DiscoveryMode
存储自动发现使用的模式
注意:如果您在功能实例化后更改此属性,则需要调用startAutoDiscovery()以搜索新的服务对象
访问函数
QIfAbstractFeature::DiscoveryMode | discoveryMode() const |
void | setDiscoveryMode(QIfAbstractFeature::DiscoveryMode discoveryMode) |
通知信号
void | discoveryModeChanged(QIfAbstractFeature::DiscoveryMode discoveryMode) |
[只读]
discoveryResult : const QIfAbstractFeature::DiscoveryResult
此属性存储了上次自动发现尝试的结果
访问函数
QIfAbstractFeature::DiscoveryResult | discoveryResult() const |
通知信号
void | discoveryResultChanged(QIfAbstractFeature::DiscoveryResult discoveryResult) |
另请参阅:startAutoDiscovery()
[只读]
error : const QString
功能最后一次错误消息。如果没有错误,则为空。
访问函数
QString | errorMessage() const |
通知信号
void | errorChanged(QIfAbstractFeature::Error error, const QString &message) |
[只读]
isInitialized : const bool
指示功能是否已使用后端的所有值初始化。
当后端发送QIfFeatureInterface::initializationDone信号以指示所有值都已经用后端值初始化时,此属性为true
。
访问函数
bool | isInitialized() const |
通知信号
void | isInitializedChanged(bool isInitialized) |
另请参阅:isValid 和 QIfFeatureInterface::initializationDone
[只读]
isValid : const bool
指示功能是否已准备好使用。
如果功能已准备好使用,则此属性为true
,否则为false
。尚未准备好通常表示找不到合适的服务对象,或者没有触发自动发现。
后端可能尚未发送所有属性,并且尚未完全初始化。请使用isInitialized来了解功能何时具有所有正确值。
访问函数
bool | isValid() const |
通知信号
void | isValidChanged(bool arg) |
另请参阅:QIfServiceObject、discoveryMode 和 isInitialized
preferredBackends : QStringList
存储用于自动发现时加载首选后端的通配符列表。
自动发现机制将自动搜索提供与该功能实现匹配接口的后端。有关更多信息,请参阅startAutoDiscovery()。
如果多个后端实现相同的接口,可以使用通配符列表来确定要加载的正确一个。
通配符按顺序应用于找到的后端。如果通配符与某些后端匹配,这些后端将被加载,否则将使用下一个通配符。
例如:给定一个具有两个后端的AbstractFeature,即 backend_mqtt.so 和 backend_qtro.so,可以将属性设置为 "*_mqtt*"
,以便在可用时始终选择 backend_mqtt.so 后端。
访问函数
QStringList | preferredBackends() const |
void | setPreferredBackends(const QStringList &preferredBackends) |
通知信号
void | preferredBackendsChanged(const QStringList &preferredBackends) |
serviceObject : QIfServiceObject*
设置特征的服务对象。
由于特征仅公开面向开发者的前端 API,需要一个实现实际功能的服务对象。这通常是通过自动发现机制获得的。
如果服务对象已经设置为确切的这个实例,或者特征不接受服务对象,则为此属性设置的设置器返回 false。
访问函数
QIfServiceObject * | serviceObject() const |
bool | setServiceObject(QIfServiceObject *so) |
通知信号
void | serviceObjectChanged() |
另请参阅discoveryMode.
成员函数文档
[显式]
QIfAbstractFeatureListModel::QIfAbstractFeatureListModel(const QString &interfaceName, QObject *parent = nullptr)
构建一个 QIfAbstractFeatureListModel。
parent 参数被传递给 QAbstractListModel 基类。
interfaceName 参数用于定位合适的服务对象。
[虚拟受保护]
bool QIfAbstractFeatureListModel::acceptServiceObject(QIfServiceObject *serviceObject)
此方法预期由任何继承自 QIfAbstractFeature 的类实现。
该方法应返回 true
,如果给定的 serviceObject 被接受并可使用,否则返回 false
。
如果对象被接受,则调用 connectToServiceObject 以实际连接到服务对象。
默认实现如果给定的 serviceObject 实现由 interfaceName(); 返回的接口,则接受 serviceObject。
另请参阅connectToServiceObject()、disconnectFromServiceObject() 和 clearServiceObject()。
[纯虚受保护]
void QIfAbstractFeatureListModel::clearServiceObject()
此方法预期由任何继承自 QIfAbstractFeatureListModel 的类实现。
当没有服务对象可用时调用。实现应将所有属性设置为安全默认值,并忘记所有对先前服务对象的引用。
注意:您必须发出相应更改信号,以便通知特征状态更改。这使得实现的类能够在之后连接到新的服务对象。
不需要从服务对象断开连接。如果它还存在,则保证首先调用 disconnectFromServiceObject。
参阅以下主题 acceptServiceObject(),connectToServiceObject() 和 disconnectFromServiceObject()。
[虚保护]
void QIfAbstractFeatureListModel::connectToServiceObject(QIfServiceObject *serviceObject)
此方法预期由任何继承自 QIfAbstractFeature 的类实现。
实现应连接到 serviceObject,并将所有属性设置为反映服务对象的状态。
因为没有之前连接的服务对象,因为此函数调用总是由调用 disconnectFromServiceObject 或 clearServiceObject 预先触发。
可以安全地假设 serviceObject 在传递到此方法之前已经通过 acceptServiceObject 方法进行了接受。
默认实现连接到由 QIfFeatureInterface 提供的信号,并在随后调用 QIfFeatureInterface::initialize()。
在重写时请注意,在调用此函数之前连接所有信号。例如:
/code void SimpleFeature::connectToServiceObject(QIfServiceObject *serviceObject) { SimpleFeatureBackendInterface *backend = backend(serviceObject); 如果 (!backend) 返回;
连接您的信号 connect(backend, & SimpleFeatureBackendInterface::propertyChanged, this, & SimpleFeature::onPropertyChanged);
连接基础信号并调用 initialize() QIfAbstractFeature::connectToServiceObject(serviceObject);
在这里可以添加其他初始化函数
参阅以下主题 acceptServiceObject,disconnectFromServiceObject 和 clearServiceObject。
[虚保护]
void QIfAbstractFeatureListModel::disconnectFromServiceObject(QIfServiceObject *serviceObject)
此方法预期由任何继承自 QIfAbstractFeature 的类实现。
实现应断开所有对 serviceObject 的连接。
不需要将内部变量重置为安全的默认值。调用此函数总是跟随调用 connectToServiceObject 或 clearServiceObject。
默认实现断开此实例到 serviceObject 的所有信号。
参阅以下主题 acceptServiceObject,connectToServiceObject 和 clearServiceObject。
QIfAbstractFeature::Error QIfAbstractFeatureListModel::错误() const
返回最后一个错误码。
参阅以下主题 setError 和 QIfAbstractFeature::Error。
[保护]
QString QIfAbstractFeatureListModel::errorText() const
把当前的错误码从 QIfAbstractFeature::Error 转换为 QString
参阅以下主题 错误。
[保护]
QString QIfAbstractFeatureListModel::interfaceName() const
返回此功能期待从服务对象和该功能实现中可用的接口名称。
另请参阅acceptServiceObject。
[虚受保护的槽]
void QIfAbstractFeatureListModel::onErrorChanged(QIfAbstractFeature::Error error, const QString &message = QString())
从后端更新error和message。
当实现新的功能以报告通用错误时,可以使用此槽。
[受保护的]
void QIfAbstractFeatureListModel::setError(QIfAbstractFeature::Error error, const QString &message = QString())
使用message设置error。
发送errorChanged()信号。
另请参阅error()和QIfAbstractFeature::Error。
[槽]
QIfAbstractFeature::DiscoveryResult QIfAbstractFeatureListModel::startAutoDiscovery()
执行自动发现尝试。
© 2024 Qt公司有限公司。此处包含的文档贡献属于其各自所有者的版权。此处提供的文档是根据自由软件基金会发布的GNU自由文档许可证版本1.3的条款许可的。Qt和相应的商标是芬兰的Qt公司及其在全世界其他地方的商标。所有其他商标属于其各自所有者。