QGraphicsTransform Class

QGraphicsTransform クラスは、QGraphicsItems に対して高度な変換を行うための抽象基底クラスです。詳細...

Header: #include <QGraphicsTransform>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Inherits: QObject
Inherited By:

QGraphicsRotation and QGraphicsScale

パブリック関数

QGraphicsTransform(QObject *parent = nullptr)
virtual ~QGraphicsTransform()
virtual void applyTo(QMatrix4x4 *matrix) const = 0

保護されたスロット

void update()

詳細説明

QGraphicsItem::transform の代替として、QGraphicsTransform を使用すると、特殊なプロパティを使用して個別に設定できる高度な変換を作成および制御できます。

QGraphicsItem を使用すると、1 つの に任意の数の QGraphicsTransform インスタンスを割り当てることができます。各 QGraphicsTransform は、割り当てられた に対して、1 つずつ順番に適用されます。QGraphicsItem QGraphicsItem

QGraphicsTransform は特にアニメーションに便利です。QGraphicsItem::setTransform() では、アイテムに直接任意のトランスフォームを割り当てることができますが、2つの異なるトランスフォームの間を直接補間する方法はありません(たとえば、アイテムにそれぞれ異なる任意のトランスフォームが割り当てられている2つの状態の間を遷移する場合など)。QGraphicsTransform を使用すると、各独立変換のプロパティ値を補間できます。その結果得られた演算は、QGraphicsItem に適用される単一の変換にまとめられます。

変換は、QMatrix4x4 を使用して、真の 3D 空間で計算されます。変換がQGraphicsItem に適用されると、それは 2DQTransform に投影されます。複数の QGraphicsTransform オブジェクトがQGraphicsItem に適用される場合、すべての変換は真の 3D 空間で計算され、2D への投影は最後の QGraphicsTransform が適用された後にのみ行われます。ただし、QGraphicsRotation は例外で、X軸とY軸の遠近効果を維持するために、回転のたびに2Dに投影されます。

独自の設定可能な変換を作成したい場合は、QGraphicsTransform(または既存のサブクラス)のサブクラスを作成し、QMatrix4x4 へのポインタを受け取る純粋な仮想applyTo() 関数を再実装することができます。適用したい各操作は、プロパティとして公開する必要があります(たとえば、customTransform->setVerticalShear(2.5))。applyTo() の再実装の内部では、提供されたトランスフォームをそれぞれ変更できます。

QGraphicsTransform は、QGraphicsItem::setTransform(),QGraphicsItem::setRotation(),QGraphicsItem::setScale() とともに使用することができます。

QGraphicsItem::transform()、QGraphicsScale 、およびQGraphicsRotationも参照してください

メンバ関数ドキュメント

QGraphicsTransform::QGraphicsTransform(QObject *parent = nullptr)

与えられたparent で新しい QGraphicsTransform を構築します。

[virtual noexcept] QGraphicsTransform::~QGraphicsTransform()

グラフィックス変換を破棄します。

[pure virtual] void QGraphicsTransform::applyTo(QMatrix4x4 *matrix) const

この純粋仮想メソッドは、派生クラスで再実装する必要があります。

この変換をmatrix に適用します。

QGraphicsItem::transform() およびQMatrix4x4::toTransform()も参照して ください。

[protected slot] void QGraphicsTransform::update()

applyTo() が以前とは異なる結果を返すように、この変換操作がパラメータを変更したことを通知します。

独自のカスタムグラフィックス変換を実装する場合は、パラメータを変更するたびにこの関数を呼び出して、QGraphicsItem にその変換を更新する必要があることを知らせる必要があります。

applyTo()も参照してください

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。