2017-10-06 26 views
0

2D QTアプリケーションを作成したいと思います。目標は、長方形を描き、サイズを変更してマウスでドラッグすることです。 QTはその機能を提供しています。 QGraphicsXxxクラスは基本的にピクセルで動作しますが、メートルのような長さの次元でアイテムの次元と位置を指定できるようにしたいと思います。QT座標変換ストラテジー

ピクセルから独立したオブジェクトディメンション表示を可能にする抽象レイヤーを構築するための優れた戦略を探しています。私は、ズーム情報を使ってQRectangleを拡張しようと考えていました。実世界とスクリーン、つまりピクセル表現を変換するメソッドなどがありました。

これは確かに可能なはずですが、座標マッピングの地獄への道のようなにおいもします。そして、すでに世界的に/エレガントに解決されていて、QTのドキュメントを見つけたり、理解したりしていないのであれば、私は驚くことはありません。

+0

それはあなたがGraphicsView Frameworkを使用してのために働くのですか? – Mailerdaimon

答えて

2

QGraphicsSceneを使用してオブジェクトをレイアウトします。すべてのサイズと位置は浮動小数点で単位に依存しません。ピクセルはQGraphicsViewを使用してシーンを表示するときに動きます。ビューではズームが処理されるため、シーン内で座標変換を行う必要はありません。ビューの変換を変更して、必要なものを表示するだけです。

あなたはGraphicsView Frameworkのドキュメントでそれについての詳細を読むことができます:http://doc.qt.io/qt-4.8/graphicsview.html