【问题标题】:QGraphicsView: How to efficiently get the viewport coordinates of QGraphicsItems?QGraphicsView:如何高效获取QGraphicsItems的视口坐标?
【发布时间】:2012-02-07 01:03:54
【问题描述】:

有没有一种快速的方法来获取 QGraphicsView 中 QGraphicsItems 的视口坐标?我能想到的唯一方法是调用 QGraphicsView::items(),然后调用 QGraphicsItem::pos(),然后调用 QGraphicsView::mapFromScene。

不过,我一定遗漏了一些东西,因为项目已经转换为视口坐标以在 QGraphicsView 上正确定位它们,因此使用 mapFromScene 再次将其转换为视口坐标似乎效率低下——尤其是因为在我的情况下,这种情况经常发生并且对于许多项目。有没有更直接的方法?

【问题讨论】:

    标签: qt qgraphicsview


    【解决方案1】:

    可能不会。一个QGraphicScene 可以同时被多个QGraphicsView 渲染。只保留一组视口坐标是没有意义的。

    还有。 QGraphicsItems 之间的所有操作都直接在场景坐标中计算。来自视口的事件在处理之前转换为场景。关闭仅基于整数的视口也会降低精度。 QGraphicsView 只是一个场景的数学模型的表示。这不是实际模型。

    也许你可以问一个更具体的问题,说明你到底想要完成什么。在场景坐标中可能有更好的方法。

    【讨论】:

      猜你喜欢
      • 2011-04-10
      • 1970-01-01
      • 2012-05-22
      • 2015-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      相关资源
      最近更新 更多