QGraphicsView:如何有效地获取QGraphicsItems的视口坐标?

时间:2012-02-07 01:03:54

标签: qt qgraphicsview

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

但是,我必须遗漏一些东西,因为物品已经转换为视口坐标以在QGraphicsView上正确定位它们,所以使用mapFromScene再次将它转换为视口坐标似乎效率低下 - 特别是因为在我的情况下,这种情况经常发生,对于很多项目。有更直接的方法吗?

1 个答案:

答案 0 :(得分:1)

可能不是。 QGraphicScene可以同时由多个QGraphicsView呈现。仅保留一组视口坐标是没有意义的。

另外。 QGraphicsItems之间的所有操作都直接在场景坐标中计算。来自视口的事件在处理之前转换为场景。处理仅基于整数的视口也可以松散精度。 QGraphicsView只是场景数学模型的表示。这不是实际的模型。

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