一起使用 Qt 的图形 View 和模型 View 框架的最佳方法/模式是什么?
似乎 Qt 应该以某种方式将这两件事联系在一起,但没有。 QGraphicsItem 可以只保留一个 QModelIndex 就足够了吗?这听起来像是糟糕的解决方案。
以前我认为最好有一些 std::vector 的数据,将其包含在场景中并在 QTreeView 中显示其中的一些。这使得撤消/重做和同步数据变得非常困难,所以这次我试图从我的错误中吸取教训!
我似乎找不到任何明确的答案。
最佳答案
我不确定这是否仍然相关,但由于我目前正在调查同一个问题,我想我会就迄今为止发现的内容发表简短评论:
ModelView 框架不适用于 QGraphicsView
和 QGraphicsScene
框架。如果你想拥有你的 QGraphicsview
和 QGraphicsScene
在 MV 意义上表现你必须继承 QAbstractItem
并将其包裹在 QGraphicsscene
周围这是QGraphicsView
的型号。如果您不需要在不同的 View 中可视化您的模型,我不建议您强制使用 MV 结构。这是关于这个主题的讨论:
https://www.qtcentre.org/threads/11763-GraphicsView-ModelView-Integration
关于Qt QGraphicsScene 和 QAbstractItemModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13801114/