2012-02-07 21 views
0

QGraphicsView的QGraphicsItems的視口座標是否有一種快捷方式?我能想到的唯一方法是調用QGraphicsView :: items(),然後調用QGraphicsItem :: pos(),然後調用QGraphicsView :: mapFromScene。QGraphicsView:如何高效地獲取QGraphicsItems的視口座標?

但是,我必須丟失一些東西,因爲項目已經轉換爲視口座標以將它們正確放置在QGraphicsView上,因此使用mapFromScene將其轉換爲視口座標看起來效率低下 - 特別是因爲在我的情況下,這經常發生和許多項目。有更直接的方法嗎?

回答

1

可能不是。 A QGraphicScene可以同時由多個QGraphicsView呈現。只保留一組視圖端口座標是沒有意義的。

另外。直接在場景座標中計算QGraphicsItems之間的所有操作。來自視口的事件在處理之前轉換爲場景。關閉只有基於整數的視圖端口也會導致精度下降。 A QGraphicsView只是場景的數學模型的表示。這不是真正的模型。

也許你可以問一個更具體的問題,你到底想要完成什麼。在場景座標中可能有更好的方法。