Qt QGraphicsScene 和 QAbstractItemModel

标签 qt qt4

一起使用 Qt 的图形 View 和模型 View 框架的最佳方法/模式是什么?

似乎 Qt 应该以某种方式将这两件事联系在一起,但没有。 QGraphicsItem 可以只保留一个 QModelIndex 就足够了吗?这听起来像是糟糕的解决方案。

以前我认为最好有一些 std::vector 的数据,将其包含在场景中并在 QTreeView 中显示其中的一些。这使得撤消/重做和同步数据变得非常困难,所以这次我试图从我的错误中吸取教训!

我似乎找不到任何明确的答案。

最佳答案

我不确定这是否仍然相关,但由于我目前正在调查同一个问题,我想我会就迄今为止发现的内容发表简短评论:

ModelView 框架不适用于 QGraphicsViewQGraphicsScene框架。如果你想拥有你的 QGraphicsviewQGraphicsScene在 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/

相关文章:

c++ - Qt防止QDialog隐藏

qt - KDE平台开发

python - 在更新期间像演示文稿一样显示图像而不显示桌面

css - Qt 样式表 : Setting the icon mode for a QTabBar

c++ - QGraphicsView 中的事件

qt - 如何使用 Qt 制作子项目?

c++ - Qt - 当另一个对话框关闭时如何做我想做的事?

python - 编辑guidata选项

linux - 在没有 X 服务器的 Centos 5.7 上运行 CutyCapt 时出错

android - 在Qt中编译项目时出现错误