由于我应该只对模型进行少量修改,透明代理将是最好的起点。该代理将被插入到模型链中。
制作代理模型的最简洁方法是什么,使得源模型和目标模型之间的所有东西在两个方向上都保持不变?
是否有任何琐碎的index()
、mapToSource()
、mapFromSource()
、...使用sourceModel( )
?
我需要扩展的是带有角色的 data()
和 flags()
。
我知道这应该很容易做,但我不想让它变得不必要的复杂,边做边学。
感谢您的宝贵时间。
最佳答案
如果您使用的是 Qt 4.8 或更新版本,您可以使用 QIdentityProxyModel ,它正是这样做的:它直接映射源模型而不更改结构,因此您可以重新实现 data()
和/或 flags()
来修改返回的内容。
在 Qt 4.7 及更早版本中,最简单的方法应该是重新实现 QSortFilterProxyModel不使用任何排序或过滤,只是覆盖 data()
和 flags()
。
关于c++ - 如何制作透明代理模型: QAbstractProxyModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19835618/