PySide6.QtCore.QAbstractProxyModel

class QAbstractProxyModel

QAbstractProxyModel 类为代理项模型提供了一个基类,这些模型可以执行排序、过滤或其他数据处理任务。更多

PySide6.QtCore.QAbstractProxyModel 的继承图

继承者: QTransposeProxyModel, QSortFilterProxyModel, QIdentityProxyModel

概要

属性

方法

虚拟方法

信号

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

此类定义了代理模型必须使用的标准接口,以便能够与其他模型/视图组件正确互操作。它不应该被直接实例化。

所有标准的代理模型都派生自QAbstractProxyModel类。如果你需要创建一个新的代理模型类,通常最好继承一个现有的类,该类提供与你想要提供的行为最接近的行为。

应该通过使用或子类化QSortFilterProxyModel来创建过滤或排序源模型数据项的代理模型。

要子类化 QAbstractProxyModel,你需要实现 mapFromSource()mapToSource()。只有在需要与默认行为不同的行为时,才需要重新实现 mapSelectionFromSource()mapSelectionToSource() 函数。

注意

如果源模型被删除或未指定源模型,代理模型将在一个空的占位符模型上操作。

另请参阅

QSortFilterProxyModel QAbstractItemModel 模型/视图 编程

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property sourceModelᅟ: QAbstractItemModel

此属性保存此代理模型的源模型。

Access functions:
__init__([parent=None])
Parameters:

父对象QObject

使用给定的parent构建一个代理模型。

createSourceIndex(row, col, internalPtr)
Parameters:
  • row – int

  • col – 整数

  • internalPtrvoid

Return type:

QModelIndex

相当于在源模型上调用createIndex。

如果你的代理模型想要维护源模型中项目的父子关系,这个方法非常有用。当重新实现mapToSource()时,你可以调用这个方法来为源模型的行row和列col创建一个索引。

典型的用法是在重新实现mapFromSource()时保存来自源模型的内部指针到代理索引中,并在重新实现mapToSource()时使用相同的内部指针作为internalPtr来恢复原始源索引。

abstract mapFromSource(sourceIndex)
Parameters:

sourceIndexQModelIndex

Return type:

QModelIndex

重新实现此函数以返回代理模型中与源模型中的sourceIndex对应的模型索引。

另请参阅

mapToSource()

mapSelectionFromSource(selection)
Parameters:

选择QItemSelection

Return type:

QItemSelection

返回从指定的sourceSelection映射的代理选择。

重新实现此方法以将源选择映射到代理选择。

mapSelectionToSource(selection)
Parameters:

选择QItemSelection

Return type:

QItemSelection

返回从指定的proxySelection映射的源选择。

重新实现此方法以将代理选择映射到源选择。

abstract mapToSource(proxyIndex)
Parameters:

proxyIndexQModelIndex

Return type:

QModelIndex

重新实现此函数以返回源模型中与代理模型中的proxyIndex对应的模型索引。

另请参阅

mapFromSource()

setSourceModel(sourceModel)
Parameters:

sourceModelQAbstractItemModel

设置给定的sourceModel由代理模型处理。

子类应在方法的开头调用beginResetModel(),断开与旧模型的连接,调用此方法,连接到新模型,并调用endResetModel()

另请参阅

sourceModel()

属性 sourceModelᅟ 的设置器。

sourceModel()
Return type:

QAbstractItemModel

返回包含通过代理模型可用的数据的模型。

另请参阅

setSourceModel()

属性 sourceModelᅟ 的获取器。

sourceModelChanged()

属性 sourceModelᅟ 的通知信号。