有没有一种快速的方法可以在QGraphicsView中获取QGraphicsItems的视口坐标?我能想到的唯一方法是调用QGraphicsView :: items(),然后调用QGraphicsItem :: pos(),然后调用QGraphicsView :: mapFromScene。
但是,我必须遗漏一些东西,因为物品已经转换为视口坐标以在QGraphicsView上正确定位它们,所以使用mapFromScene再次将它转换为视口坐标似乎效率低下 - 特别是因为在我的情况下,这种情况经常发生,对于很多项目。有更直接的方法吗?答案 0 :(得分:1)
可能不是。 QGraphicScene
可以同时由多个QGraphicsView
呈现。仅保留一组视口坐标是没有意义的。
另外。 QGraphicsItems
之间的所有操作都直接在场景坐标中计算。来自视口的事件在处理之前转换为场景。处理仅基于整数的视口也可以松散精度。 QGraphicsView
只是场景数学模型的表示。这不是实际的模型。
也许你可以问一个更具体的问题,你究竟想要完成什么。在场景坐标中可能有更好的方法。