class QAbstractProxyModel#

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

Inheritance diagram of PySide6.QtCore.QAbstractProxyModel

继承自: QTransposeProxyModelQSortFilterProxyModelQIdentityProxyModel

概要#

属性#

  • sourceModelᅟ - 此代理模型的数据源模型

方法#

  • def __init__()

  • def createSourceIndex()

  • def sourceModel()

虚方法#

信号

备注

此文档可能包含从 C++ 自动转换为 Python 的片段。我们总是欢迎对片段翻译的贡献。如果您发现翻译存在问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单来通知我们

详细描述

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

所有标准代理模型都从 QAbstractProxyModel 类派生。如果您需要创建新的代理模型类,通常最好从提供与所需行为最接近的现有类进行子类化。

应使用或子类化 QSortFilterProxyModel 来创建筛选或排序来自源模型的数据的代理模型。

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

备注

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

也请参阅

QSortFilterProxyModel QAbstractItemModel 模型/视图 编程

备注

属性可以在使用 from __feature__ import true_property 时直接使用,或者通过访问器函数使用。

属性sourceModel: QAbstractItemModel#

此属性包含此代理模型的源模型。

访问函数
__init__([parent=None])#
参数:

parentQObject

创建一个具有给定 parent 的代理模型。

createSourceIndex(row, col, internalPtr)#
参数:
  • row – int

  • col – int

  • internalPtrvoid

返回类型:

QModelIndex

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

此方法在您的代理模型需要维护源模型中项的父子关系时很有用。当重新实现 mapToSource() 时,您可以调用此方法为源模型的第 row 行和第 col 列创建索引。

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

摘要 mapFromSource(sourceIndex)
参数:

sourceIndexQModelIndex

返回类型:

QModelIndex

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

也请参阅

mapToSource()

mapSelectionFromSource(selection)
参数:

selectionQItemSelection

返回类型:

QItemSelection

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

重写此方法以将源选择映射到代理选择。

mapSelectionToSource(selection)
参数:

selectionQItemSelection

返回类型:

QItemSelection

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

重写此方法以将代理选择映射到源选择。

抽象 mapToSource(proxyIndex)
参数:

proxyIndexQModelIndex

返回类型:

QModelIndex

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

也请参阅

mapFromSource()

setSourceModel(sourceModel)
参数:

sourceModelQAbstractItemModel

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

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

也请参阅

sourceModel()

属性 sourceModelᅟ 的设置器。

sourceModel()
返回类型:

QAbstractItemModel

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

也请参阅

setSourceModel()

属性 sourceModelᅟ 的获取器。

sourceModelChanged()#

属性 sourceModel 的通知信号。