QIviPagingModelInterface 类
QIviPagingModelInterface 定义了后端对 QIviPagingModel 功能类的接口。 更多...
头文件 | #include <QIviPagingModelInterface> |
qmake | QT += ivicore |
继承 | QIviFeatureInterface |
继承自 |
公共函数
QIviPagingModelInterface(QObject *parent = nullptr) | |
virtual void | fetchData(const QUuid &identifier, int start, int count) = 0 |
virtual void | registerInstance(const QUuid &identifier) = 0 |
virtual void | unregisterInstance(const QUuid &identifier) = 0 |
信号
void | countChanged(const QUuid &identifier = QUuid(), int count = -1) |
void | dataChanged(const QUuid &identifier, const QList<QVariant> &data, int start, int count) |
void | dataFetched(const QUuid &identifier, const QList<QVariant> &data, int start, bool moreAvailable) |
void | supportedCapabilitiesChanged(const QUuid &identifier, QtIviCoreModule::ModelCapabilities capabilities) |
详细描述
QIviPagingModelInterface 是由 QIviPagingModel 使用的一个接口
通过一个 QIviPagingModel 对象发现接口,连接到它并对其进行配置。
每个 QIviPagingModel 都会生成自己的 QUuid,并将其传递给后端接口,可用来识别模型实例。
//TODO 以完整的后端功能为例说明接口的工作原理 <example of a fully featured backend>
另请参阅QIviPagingModel。
成员函数文档
QIviPagingModelInterface::QIviPagingModelInterface(QObject *parent = nullptr)
构造一个后端接口。
parent 被传递给 QObject 构造函数。
[signal]
void QIviPagingModelInterface::countChanged(const QUuid &identifier = QUuid(), int count = -1)
当由 identifier 标识的 QIviPagingModel 实例中的项目数发生变化时,将发出此信号。新的项目数作为 count 返回。
在发出 dataFetched() 信号将数据返回之前,预计这种信号将在模型实例通过调用 fetchData() 首次请求新数据后发出。
注意: 如果用空QQuuid作为标识符,所有模型实例都将被通知。
另请参阅 fetchData() 和 dataFetched。
[信号]
void QIviPagingModelInterface::dataChanged(const QUuid &identifier, const QList<QVariant> &data, int start, int count)
此信号在模型实例识别符为identifier的数据发生变化且模型需要更新时发出。新的数据通过data传递。参数start和count可以用来定义要替换为新数据的项的集合。
对于插入新项,项通过data传递,start用于指定项插入的位置,count参数需要为0,因为我们不想替换现有数据。
QList<ExampleItem> list; ExampleItem item = ExampleItem(); list.insert(index, item); QVariantList items = { QVariant::fromValue(item) }; emit dataChanged(items, index, 0);
删除项非常类似,用start来指示哪个项,并用count来指示多少。
list.removeAt(index); emit dataChanged(identifier, QVariantList(), index, 1);
注意: 如果用空QQuuid作为标识符,所有模型实例都将被通知。
[信号]
void QIviPagingModelInterface::dataFetched(const QUuid &identifier, const QList<QVariant> &data, int start, bool moreAvailable)
在调用fetchData()后发出此信号,并将请求的数据作为参数data返回给模型实例识别符为identifier的QIviPagingModel。参数start包含数据的起始索引,而moreAvailable则包含是否存在更多数据,并且可以调用新的fetchData()来获取此数据。
注意: 如果用空QQuuid作为标识符,所有模型实例都将被通知。
另请参阅 fetchData() 和 dataFetched()。
[信号]
void QIviPagingModelInterface::supportedCapabilitiesChanged(const QUuid &identifier, QtIviCoreModule::ModelCapabilities capabilities)
当模型实例识别符为identifier的capabilities发生变化时发出。
注意: 如果用空QQuuid作为标识符,所有模型实例都将被通知。
[纯虚函数]
void QIviPagingModelInterface::fetchData(const QUuid &identifier, int start, int count)
当需要通过识别符为identifier的QIviPagingModel检索新数据时将调用此函数。
start和count参数定义了要检索的数据的范围。此方法应在新数据准备就绪后发出dataFetched()信号。
另请参阅 dataFetched。
[纯虚函数]
void QIviPagingModelInterface::registerInstance(const QUuid &identifier)
使用此后端将该标识为 identifier 的 QIviPagingModel 实例注册。此函数将在 QIviPagingModel 及其所有派生类初始化函数 initialize() 调用后,但请求任何数据(例如通过 fetchData())之前被调用。
另请参阅 unregisterInstance。
[纯虚函数]
void QIviPagingModelInterface::unregisterInstance(const QUuid &identifier)
使用此后端注销标识为 identifier 的 QIviPagingModel 实例。该函数将在 QIviPagingModel 及其所有派生类在 ServiceObject 断开连接之前调用,并可以用于清理该 identifier 的所有缓存数据。
另请参阅 registerInstance。
©2020 The Qt Company Ltd. 此文件中包含的文档贡献属于各自的版权所有者。所提供文档在自由软件基金会发布的 GNU 自由文档许可证版本 1.3 条件下提供。Qt 及相应标志为 The Qt Company Ltd. 在芬兰和/或全球其他国家的商标。所有其他商标均为各自所有者的财产。