3

私のpyqtコードの一部でQGraphicsItemをスケーリングしています。コードの別のセクションで self.rect.adjusted(0, 0, 0, 0) を呼び出すと、変換前の寸法が返されます。私の質問は、変換後の寸法をどのように見つけることができますか?

4

1 に答える 1

4

変換後、sceneBoundingRect () を要求するか、boundingRect () よりも高い精度で使用される boundingRegion () を呼び出します。この関数は QGraphicsItem にあります。QtAssistant では、それについて詳しく読むことができます。

境界領域は、アイテムのビジュアル コンテンツの大まかな輪郭を表します。計算にはコストがかかりますが、boundingRect() よりも正確であり、アイテムが更新されたときに不要な再描画を回避するのに役立ちます。これは、細いアイテム (線や単純な多角形など) の場合に特に効果的です。setBoundingRegionGranularity() を呼び出して、境界領域の粒度を調整できます。デフォルトの粒度は 0 です。アイテムの境界領域は、境界矩形と同じです。itemToDeviceTransform は、アイテム座標からデバイス座標への変換です。この関数がシーン座標で QRegion を返すようにする場合は、引数として sceneTransform() を渡すことができます。

于 2011-10-10T21:52:25.283 に答える