このページでは

QGraphicsItemAnimation Class

QGraphicsItemAnimation クラスは、QGraphicsItem 向けのシンプルなアニメーション機能を提供します。詳細...

ヘッダー: #include <QGraphicsItemAnimation>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
継承元: QObject
ステータス: 非推奨

このクラスは非推奨です。新しいコードでの使用は強く推奨しません。

パブリック関数

QGraphicsItemAnimation(QObject *parent = nullptr)
virtual ~QGraphicsItemAnimation()
void clear()
qreal horizontalScaleAt(qreal step) const
qreal horizontalShearAt(qreal step) const
QGraphicsItem *item() const
QPointF posAt(qreal step) const
QList<std::pair<qreal, QPointF>> posList() const
qreal rotationAt(qreal step) const
QList<std::pair<qreal, qreal>> rotationList() const
QList<std::pair<qreal, QPointF>> scaleList() const
void setItem(QGraphicsItem *item)
void setPosAt(qreal step, const QPointF &point)
void setRotationAt(qreal step, qreal angle)
void setScaleAt(qreal step, qreal sx, qreal sy)
void setShearAt(qreal step, qreal sh, qreal sv)
void setTimeLine(QTimeLine *timeLine)
void setTranslationAt(qreal step, qreal dx, qreal dy)
QList<std::pair<qreal, QPointF>> shearList() const
QTimeLine *timeLine() const
QTransform transformAt(qreal step) const
QList<std::pair<qreal, QPointF>> translationList() const
qreal verticalScaleAt(qreal step) const
qreal verticalShearAt(qreal step) const
qreal xTranslationAt(qreal step) const
qreal yTranslationAt(qreal step) const

パブリック・スロット

void setStep(qreal step)

保護された関数

virtual void afterAnimationStep(qreal step)
virtual void beforeAnimationStep(qreal step)

詳細な説明

QGraphicsItemAnimation クラスは、QGraphicsItem をアニメーション化します。指定されたステップごとに、アイテムの変換行列の変更をスケジュールすることができます。QGraphicsItemAnimation クラスには現在のステップ値があります。この値が変更されると、そのステップでスケジュールされた変換が実行されます。アニメーションの現在のステップは、setStep() 関数で設定されます。

QGraphicsItemAnimationは、行列を計算するために、スケジュールされた変更のうち最も近い隣接する2つの変更点間で単純な線形補間を行います。例えば、アイテムの位置を0.0と1.0に設定した場合、アニメーションではアイテムがこれらの位置間を直線的に移動するように表示されます。スケーリングや回転についても同様です。

通常、このクラスはQTimeLine と組み合わせて使用されます。その際、タイムラインのvalueChanged()シグナルをsetStep() スロットに接続します。例えば、異なるステップ値に対してsetRotationAt() を呼び出すことで、アイテムの回転を設定できます。アニメーションのタイムラインは、setTimeLine()関数で設定されます。

タイムラインを使用したアニメーションの例を以下に示します:

QGraphicsItem *ball = new QGraphicsEllipseItem(0, 0, 20, 20);

QTimeLine *timer = new QTimeLine(5000);
timer->setFrameRange(0, 100);

QGraphicsItemAnimation *animation = new QGraphicsItemAnimation;
animation->setItem(ball);
animation->setTimeLine(timer);

for (int i = 0; i < 200; ++i)
    animation->setPosAt(i / 200.0, QPointF(i, i));

QGraphicsScene *scene = new QGraphicsScene;
scene->setSceneRect(0, 0, 250, 250);
scene->addItem(ball);

QGraphicsView *view = new QGraphicsView(scene);
view->show();

timer->start();

ステップ値は 0.0 から 1.0 の範囲にあることに注意してください。setUpdateInterval() を使用する必要がある場合があります。デフォルトの更新間隔は 40 ms です。スケジュールされた変換は、一度設定されると削除できないため、同じステップで同じ種類の変換(回転など)を複数スケジュールすることは推奨されません。

QTimeLine およびGraphics View Frameworkも参照してください 。

メンバ関数のドキュメント

QGraphicsItemAnimation::QGraphicsItemAnimation(QObject *parent = nullptr)

指定されたparent を使用して、アニメーションオブジェクトを作成します。

[virtual noexcept] QGraphicsItemAnimation::~QGraphicsItemAnimation()

アニメーションオブジェクトを破棄します。

[virtual protected] void QGraphicsItemAnimation::afterAnimationStep(qreal step)

このメソッドは、新しいステップが実行された後に追加のコードを実行する必要があるサブクラスでオーバーライドされることを想定しています。アクションがその値に依存する場合に使用できるよう、アニメーション `step ` が用意されています。

[virtual protected] void QGraphicsItemAnimation::beforeAnimationStep(qreal step)

このメソッドは、新しいステップが実行される前に追加のコードを実行する必要があるサブクラスによってオーバーライドされることを想定しています。アクションがその値に依存する場合に使用できるよう、step というアニメーションが用意されています。

void QGraphicsItemAnimation::clear()

アニメーションに使用されているスケジュールされた変換を削除しますが、アイテムとタイムラインは保持されます。

qreal QGraphicsItemAnimation::horizontalScaleAt(qreal step) const

指定されたstep 値に対応する項目の水平スケールを返します。

setScaleAt()も参照してください 。

qreal QGraphicsItemAnimation::horizontalShearAt(qreal step) const

指定されたstep 値に対応する項目の水平シアーを返します。

「setShearAt()」も参照してください 。

QGraphicsItem *QGraphicsItemAnimation::item() const

アニメーションオブジェクトが操作対象とするアイテムを返します。

setItem()も参照してください 。

QPointF QGraphicsItemAnimation::posAt(qreal step) const

指定されたstep の値に対応する項目の位置を返します。

setPosAt()も参照してください 。

QList<std::pair<qreal, QPointF>> QGraphicsItemAnimation::posList() const

明示的に挿入されたすべての位置を返します。

posAt() およびsetPosAt()も参照してください 。

qreal QGraphicsItemAnimation::rotationAt(qreal step) const

指定されたstep の値における、アイテムの回転角度を返します。

「setRotationAt()」も参照してください 。

QList<std::pair<qreal, qreal>> QGraphicsItemAnimation::rotationList() const

明示的に挿入されたすべての回転を返します。

rotationAt() およびsetRotationAt()も参照してください 。

QList<std::pair<qreal, QPointF>> QGraphicsItemAnimation::scaleList() const

明示的に挿入されたすべてのスケールを返します。

verticalScaleAt()、horizontalScaleAt()、およびsetScaleAt()も参照してください 。

void QGraphicsItemAnimation::setItem(QGraphicsItem *item)

指定したitem を、アニメーションで使用するよう設定します。

「item()」も参照してください 。

void QGraphicsItemAnimation::setPosAt(qreal step, const QPointF &point)

指定されたstep の値にある項目の位置を、指定されたpoint に設定します。

posAt()も参照してください 。

void QGraphicsItemAnimation::setRotationAt(qreal step, qreal angle)

指定されたstep の値にあるアイテムの回転を、指定されたangle に設定します。

rotationAt()も参照してください 。

void QGraphicsItemAnimation::setScaleAt(qreal step, qreal sx, qreal sy)

sx およびsy で指定された水平および垂直の拡大率を用いて、指定されたstep の値で項目の拡大率を設定します。

verticalScaleAt() およびhorizontalScaleAt()も参照してください 。

void QGraphicsItemAnimation::setShearAt(qreal step, qreal sh, qreal sv)

sh およびsv で指定された水平および垂直のシア係数を用いて、指定されたstep の値でアイテムのシアを設定します。

verticalShearAt() およびhorizontalShearAt()も参照してください 。

[slot] void QGraphicsItemAnimation::setStep(qreal step)

アニメーションの現在のstep の値を設定し、このステップでスケジュールされている変形を実行します。

void QGraphicsItemAnimation::setTimeLine(QTimeLine *timeLine)

アニメーションの速度を制御するために使用されるタイムラインオブジェクトを、指定されたtimeLine に設定します。

timeLine()も参照してください 。

void QGraphicsItemAnimation::setTranslationAt(qreal step, qreal dx, qreal dy)

指定されたstep の値にある項目の位置を、dx およびdy で指定された水平座標と垂直座標を用いて設定します。

xTranslationAt() およびyTranslationAt()も参照してください 。

QList<std::pair<qreal, QPointF>> QGraphicsItemAnimation::shearList() const

明示的に挿入されたすべてのせん断を返します。

verticalShearAt()、horizontalShearAt()、およびsetShearAt()も参照してください 。

QTimeLine *QGraphicsItemAnimation::timeLine() const

アニメーションの再生速度を制御するために使用されるタイムラインオブジェクトを返します。

setTimeLine()も参照してください 。

QTransform QGraphicsItemAnimation::transformAt(qreal step) const

指定されたstep 値に対応するアイテムに適用されているトランスフォームを返します。

QList<std::pair<qreal, QPointF>> QGraphicsItemAnimation::translationList() const

明示的に挿入されたすべての翻訳を返します。

xTranslationAt()、yTranslationAt()、およびsetTranslationAt()も参照してください 。

qreal QGraphicsItemAnimation::verticalScaleAt(qreal step) const

指定されたstep 値にある項目の垂直スケールを返します。

setScaleAt()も参照してください 。

qreal QGraphicsItemAnimation::verticalShearAt(qreal step) const

指定されたstep 値に対応する項目の鉛直シアを返します。

setShearAt()も参照してください 。

qreal QGraphicsItemAnimation::xTranslationAt(qreal step) const

指定されたstep の値における項目の水平方向の変位を返します。

「setTranslationAt()」も参照してください 。

qreal QGraphicsItemAnimation::yTranslationAt(qreal step) const

指定されたstep の値における項目の垂直方向の移動量を返します。

「setTranslationAt()」も参照してください 。

© 2026 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.