排序、筛选模型基类QAbstractProxyModel
QAbstractProxyModel类为可以执行排序、筛选或其他数据处理任务的代理项模型提供了一个基类。
from PySide6.QtCore import QAbstractProxyModel
QAbstractProxyModel(parent: Union[PySide6.QtCore.QObject, NoneType] = None)-> None
此类定义了代理模型必须使用的标准接口,以便能够与其他模型/视图组件正确地进行互操作。它不应该被直接实例化。
所有标准代理模型都是从QAbstractProxyModel类派生的。如果您需要创建一个新的代理模型类,通常最好是将现有的类子类化,该类提供与您想要提供的行为最接近的行为。
应该通过使用或子类化QSortFilterProxyModel来创建从源模型中筛选或排序数据项的代理模型。
要子类化QAbstractProxyModel,您需要实现mapFromSource()和mapToSource()。只有在需要不同于默认行为的行为时,才需要重新实现mapSelectionFromSource()和mapSelectionToSource()函数。
属性
-
sourceModel: PySide6.QtCore.QAbstractItemModel
此属性包含此代理模型的源模型。。
Access functions:
- sourceModel()
- setSourceModel(sourceModel)
- Signal sourceModelChanged()
方法
方法 | 描述 |
---|---|
createSourceIndex(self, row: int, col: int, internalPtr: int)-> PySide6.QtCore.QModelIndex | 相当于对源模型调用createIndex。 如果代理模型希望维护源模型中项目的父子关系,则此方法非常有用。当重新实现mapToSource()时,可以调用此方法为源模型的行-行-列-列创建索引。 一种典型的用法是在重新实现mapFromSource()时将来自源模型的内部指针保存在代理索引中,并在重新实现mapToSource()后使用与internalPtr相同的内部指针来恢复原始源索引。 |
mapFromSource(self, sourceIndex: Union[PySide6.QtCore.QModelIndex, PySide6.QtCore.QPersistentModelIndex])-> PySide6.QtCore.QModelIndex | 重新实现此函数可返回代理模型中与源模型中的sourceIndex相对应的模型索引。 |
mapSelectionFromSource(self, selection: PySide6.QtCore.QItemSelection)-> PySide6.QtCore.QItemSelection | 返回从指定的sourceSelection映射的代理选择。 重新实现此方法以将源选择映射到代理选择。 |
mapSelectionToSource(self, selection: PySide6.QtCore.QItemSelection)-> PySide6.QtCore.QItemSelection | 返回从指定的proxySelection映射的源选择。 重新实现此方法以将代理选择映射到源选择。 |
mapToSource(self, proxyIndex: Union[PySide6.QtCore.QModelIndex, PySide6.QtCore.QPersistentModelIndex])-> PySide6.QtCore.QModelIndex | 重新实现此函数以返回源模型中与代理模型中的proxyIndex相对应的模型索引。 |
setSourceModel(self, sourceModel: PySide6.QtCore.QAbstractItemModel)-> None | 设置要由代理模型处理的给定sourceModel。 子类应在方法开始时调用beginResetModel(),断开与旧模型的连接,调用此方法,连接到新模型,然后调用endResetModels()。 属性sourceModel的集合。 |
ourceModel(self)-> PySide6.QtCore.QAbstractItemModel | 返回包含可通过代理模型使用的数据的模型。 属性sourceModel的Getter。 |
setSourceModel(self, sourceModel: PySide6.QtCore.QAbstractItemModel)-> None |
信号
信号 | 描述 |
---|---|
sourceModelChanged() | 属性sourceModel的通知信号。 |