QGraphicsTransform Class
QGraphicsTransform クラスは、QGraphicsItems に対して高度な変換を行うための抽象基底クラスです。詳細...
ヘッダー | #include <QGraphicsTransform> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
を継承する: | QObject |
によって継承される: |
パブリック関数
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()も参照してください 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.