156-数据库操作和模型-QSQL模型-排序、筛选模型基类QAbstractProxyModel

排序、筛选模型基类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的通知信号。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

士别三日,当挖目相待

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值