c++ - 如何制作透明代理模型: QAbstractProxyModel?

标签 c++ qt model

由于我应该只对模型进行少量修改,透明代理将是最好的起点。该代理将被插入到模型链中。

制作代理模型的最简洁方法是什么,使得源模型和目标模型之间的所有东西在两个方向上都保持不变?

是否有任何琐碎的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/

相关文章:

c++ - 链接 boost.asio

qt - QImage 和线程

python - Django:更新或更改以前保存的模型数据

python - 使用 pyqt4 在设计的 qtdesigner ui 中添加 TreeView

android - 如何为 Android arm64-v8a xcompile Qt?

java - 丙二醛 : Model Driven Architecture

python - 抽象类的外键(通用关系)

c++ - 从逗号分隔的字符串中解析整数

c++ - 迭代一个有 10000 行的 mysql 结果集,需要 3.5 秒。正常吗?

c++ - 从引用创建一个指向基类的智能指针