2012-02-07 21 views
0

はQGraphicsViewにQGraphicsItemsのビューポート座標を取得するための高速な方法はありますか?私は考えることができる唯一の方法は、QGraphicsView :: mapFromSceneが続いた後QGraphicsView ::アイテム()、およびQGraphicsItem :: POS()を呼び出すことです。QGraphicsView:効率的にQGraphicsItemsのビューポートの座標を取得するには?

アイテムは既にビューポート座標に変換されているため、QGraphicsViewに正しく配置されているため、mapFromSceneで再びビューポート座標に変換すると効率が悪いように見えます。特に私の場合は頻繁に発生するためです多くの項目についてより直接的なアプローチはありますか?

答えて

1

おそらくありません。 A QGraphicSceneは同時に複数のレンダリングすることができる。QGraphicsView。ビューポート座標のセットを1つだけ保持することは意味がありません。

また、 QGraphicsItemsの間のすべての操作は、シーン座標で直接計算されます。ビューポートからのイベントは処理前のシーンに変換されます。整数ベースだけのビューポートを処理すると精度が低下することもあります。 QGraphicsViewは、シーンの数学的モデルの表現にすぎません。実際のモデルではありません。

たぶん、あなたはあなたが達成しようとしている正確に何のより具体的な質問をすることができます。シーン座標でそれを行うより良い方法があるかもしれません。

関連する問題