QIviPagingModelInterface 类

QIviPagingModelInterface 定义了后端对 QIviPagingModel 功能类的接口。 更多...

头文件 #include <QIviPagingModelInterface>
qmakeQT += ivicore
继承 QIviFeatureInterface
继承自

QIviSearchAndBrowseModelInterface

公共函数

QIviPagingModelInterface(QObject *parent = nullptr)
virtual voidfetchData(const QUuid &identifier, int start, int count) = 0
virtual voidregisterInstance(const QUuid &identifier) = 0
virtual voidunregisterInstance(const QUuid &identifier) = 0

信号

voidcountChanged(const QUuid &identifier = QUuid(), int count = -1)
voiddataChanged(const QUuid &identifier, const QList<QVariant> &data, int start, int count)
voiddataFetched(const QUuid &identifier, const QList<QVariant> &data, int start, bool moreAvailable)
voidsupportedCapabilitiesChanged(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传递。参数startcount可以用来定义要替换为新数据的项的集合。

对于插入新项,项通过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返回给模型实例识别符为identifierQIviPagingModel。参数start包含数据的起始索引,而moreAvailable则包含是否存在更多数据,并且可以调用新的fetchData()来获取此数据。

注意: 如果用空QQuuid作为标识符,所有模型实例都将被通知。

另请参阅 fetchData() 和 dataFetched()。

[信号] void QIviPagingModelInterface::supportedCapabilitiesChanged(const QUuid &identifier, QtIviCoreModule::ModelCapabilities capabilities)

当模型实例识别符为identifiercapabilities发生变化时发出。

注意: 如果用空QQuuid作为标识符,所有模型实例都将被通知。

[纯虚函数] void QIviPagingModelInterface::fetchData(const QUuid &identifier, int start, int count)

当需要通过识别符为identifierQIviPagingModel检索新数据时将调用此函数。

startcount参数定义了要检索的数据的范围。此方法应在新数据准备就绪后发出dataFetched()信号。

另请参阅 dataFetched

[纯虚函数] void QIviPagingModelInterface::registerInstance(const QUuid &identifier)

使用此后端将该标识为 identifierQIviPagingModel 实例注册。此函数将在 QIviPagingModel 及其所有派生类初始化函数 initialize() 调用后,但请求任何数据(例如通过 fetchData())之前被调用。

另请参阅 unregisterInstance

[纯虚函数] void QIviPagingModelInterface::unregisterInstance(const QUuid &identifier)

使用此后端注销标识为 identifierQIviPagingModel 实例。该函数将在 QIviPagingModel 及其所有派生类在 ServiceObject 断开连接之前调用,并可以用于清理该 identifier 的所有缓存数据。

另请参阅 registerInstance

©2020 The Qt Company Ltd. 此文件中包含的文档贡献属于各自的版权所有者。所提供文档在自由软件基金会发布的 GNU 自由文档许可证版本 1.3 条件下提供。Qt 及相应标志为 The Qt Company Ltd. 在芬兰和/或全球其他国家的商标。所有其他商标均为各自所有者的财产。