0

ここに表示されているのとまったく同じ方法で、QT で Y 軸 (または任意の軸) を中心にウィジェットを回転させたいと思います。

Y 軸を中心とした 3D 空間での画像の回転

検索しましたが、時計回りまたは反時計回りに回転するような2次元変換を得たものはすべて

プロジェクト全体でこれを1回行うため、非常に単純なものが本当に必要です。

4

3 に答える 3

1

まず、通常の Qt ウィジェットでは、ペイント エンジンの動作方法 (完全に 2D) とレイアウト マネージャーの動作方法が原因で、これを行うことができないため、どのような解決策も自明ではありません。

これを行う最も簡単な方法は、ウィジェットをQGraphicsScene/Viewとしてに配置QGraphicsProxyWidgetし、メソッドを使用しsetTransform(const QTransform&, bool)て変換行列を適用することです。

ただし、エンジンはまだ 2D であるため、必要な操作を記述する 3D 変換マトリックスを作成し、射影を使用して 2D マトリックスに変換する必要があります。単純ではありませんが、静的メソッドを使用してリンク先のような効果を「偽造」することができますsquareToQuad(const QPolygonF&, QTransform&)。ユーザーがウィジェットを「回転」すると、1 つの垂直エッジが小さくなり、クアッド センターに向かって移動し、反対側のエッジが大きくなります。クアッドセンターに向かって移動します。

于 2013-01-27T10:08:22.113 に答える
0

他のユーザー インターフェイス ウィジェットとうまく統合できる方法で Qt プロジェクトでこれを実現したい場合は、Qt Quick (Qt 4.7 +) または Qt Quick 2.0 (Qt 5.0 +) をチェックすることをお勧めします。これらは、より動的なインターフェイスの作成を容易にするために意図的に設計されています。それらは、他の Qt ウィジェットと同じようにアクセスできる使い慣れた高レベルの C++ ラッパーと組み合わせて、QML (ウィジェット機能を記述する CSS に似たマークアップ言語) を使用します。Qt Quick 2.0 は特にクールで、クールなパーティクル システム エフェクトを比較的簡単に描画できます。

于 2013-02-28T02:38:01.523 に答える