【问题标题】:Qt QGraphicsScene and QAbstractItemModelQt QGraphicsScene 和 QAbstractItemModel
【发布时间】:2012-12-10 12:39:03
【问题描述】:

同时使用 Qt 的图形视图和模型视图框架的最佳方法/模式是什么?

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

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

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

【问题讨论】:

  • 两者是完全不同的东西。我看不到连接。您想将两者结合使用来解决什么问题?
  • 如果你有说,瓷砖地图的地图编辑器。然后我想你会希望瓦片数据是一个 QAbstractTableModel,但这也必须显示在 QGraphicsView 中,并且每个瓦片可能有需要在 QTreeView 中显示的数据或一些诸如“IsAnimated”之类的可编辑属性管他呢。希望这是有道理的!
  • 你解决了这个问题了吗?我也卡在这个问题上,你能分享你的解决方案吗?我找到的唯一起点是这个博客:invalidmagic.wordpress.com/2009/12/10/…
  • 最后我推出了自己的框架:/

标签: qt qt4


【解决方案1】:

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

ModelView 框架不适用于QGraphicsViewQGraphicsScene 框架。如果你想让你的QGraphicsviewQGraphicsScene 表现在MV 意义上,你必须继承QAbstractItem 并将它包裹在QGraphicsscene 周围,这是QGraphicsView 的模型。如果您不需要在不同的视图中可视化您的模型,我不建议您强制使用 MV 结构。这是关于这个主题的讨论: https://www.qtcentre.org/threads/11763-GraphicsView-ModelView-Integration

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    相关资源
    最近更新 更多