1

いくつかの背景 - QGraphicsScene があり、ビューが 1 つしかなく、シーンの 1-1 スケールであるとします。事前に定義されたピクセル サイズを持つ、シーンの外部ビューを表す QRect A があります。A の内側に小さな四角形である QRect A1 があります。

どのように A1 をシーンに変換し、正しくスケーリングされるようにしますか (つまり、rect A の 1/4 の場合、シーンの 1/4 を占めます)、その変換を元に戻して、シーンで作成された rect をスケーリングしますか? rect Aに正しく収まるようにするには?

私はこのブルートフォースをすべて行うことができますが、Qt の組み込みクラスを使用する方法があるかどうか疑問に思っています...

4

1 に答える 1

1

同様の用途を見つけるためにいくつかの例を調べた後、私はポイントを完全に見逃していることに気付きました - A/A1 をシーンに直接設定し、ビューをスケーリングすることができます(完全に明らかですが、今まで完全に見落とされていた QGraphicsView を介して) ::fitInView(..)) 内側の四角形に合わせます。rect 変換は必要ありません。合計「当たり前」の瞬間。:)

ビューを操作するときは、ビュー内のマウス クリックとポイントを変換する必要がありますが、それを適切に処理する mapTo* mapFrom* のすばらしいセットがすべてあります。

TL;DR - fitInView() を使用する

于 2014-05-16T16:36:14.900 に答える