QAbstractAnimation Class

QAbstractAnimationクラスは、すべてのアニメーションの基本です。さらに...

ヘッダー #include <QAbstractAnimation>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
を継承する: QObject
によって継承される:

QAnimationGroup,QPauseAnimation, およびQVariantAnimation

パブリックタイプ

enum DeletionPolicy { KeepWhenStopped, DeleteWhenStopped }
enum Direction { Forward, Backward }
enum State { Stopped, Paused, Running }

プロパティ

パブリック機能

QAbstractAnimation(QObject *parent = nullptr)
virtual ~QAbstractAnimation()
QBindable<int> bindableCurrentLoop() const
QBindable<int> bindableCurrentTime()
QBindable<QAbstractAnimation::Direction> bindableDirection()
QBindable<int> bindableLoopCount()
QBindable<QAbstractAnimation::State> bindableState() const
int currentLoop() const
int currentLoopTime() const
int currentTime() const
QAbstractAnimation::Direction direction() const
virtual int duration() const = 0
QAnimationGroup *group() const
int loopCount() const
void setDirection(QAbstractAnimation::Direction direction)
void setLoopCount(int loopCount)
QAbstractAnimation::State state() const
int totalDuration() const

パブリックスロット

void pause()
void resume()
void setCurrentTime(int msecs)
void setPaused(bool paused)
void start(QAbstractAnimation::DeletionPolicy policy = KeepWhenStopped)
void stop()

シグナル

void currentLoopChanged(int currentLoop)
void directionChanged(QAbstractAnimation::Direction newDirection)
void finished()
void stateChanged(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)

保護された関数

virtual void updateCurrentTime(int currentTime) = 0
virtual void updateDirection(QAbstractAnimation::Direction direction)
virtual void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)

再実装されたプロテクト関数

virtual bool event(QEvent *event) override

詳細説明

このクラスは、すべてのアニメーションで共有される機能を定義します。このクラスを継承することで、アニメーションフレームワークの残りの部分にプラグインするカスタムアニメーションを作成することができます。

アニメーションの進行状況は、現在の時間 (currentLoopTime()) で示されます。これは、アニメーションの開始 (0) から終了 (duration()) までのミリ秒単位で表されます。この値は、アニメーションの実行中に自動的に更新されます。また、setCurrentTime() で直接設定することもできます。

アニメーションは、どの時点でも3つの状態のうちの1つになります:Running Stopped Paused State enum で定義されています。現在の状態は、 ()、 ()、 ()、 () を呼び出すことで変更できます。アニメーションが開始されると、 は常にリセットされます。一時停止されたアニメーションは、再開されたときに同じ現在時刻で続行されます。アニメーションが停止した場合、再開することはできませんが、(再び開始されるまで)現在時刻を保持します。QAbstractAnimationは、状態が変化するたびに ()を発行します。start stop pause resume current time stateChanged

アニメーションは、loopCount プロパティを設定することで、何回でもループさせることができます。アニメーションの現在時刻がduration() に達すると、現在時刻をリセットして実行し続けます。ループ回数1(デフォルト値)は、アニメーションが1回実行されることを意味します。継続時間 -1 は、アニメーションが停止するまで実行されることを意味します。現在時刻がduration() と等しく、アニメーションが最終ループに入ると、Stopped 状態になり、finished() シグナルが出力されます。

QAbstractAnimation は、サブクラスがアニメーションの進行状況を追跡するために使用する純粋な仮想関数、duration() とupdateCurrentTime() を提供します。duration() 関数を使用すると、アニメーションの継続時間を報告できます(前述のとおり)。アニメーションフレームワークは、現在時刻が変更されたときにupdateCurrentTime() を呼び出します。この関数を再実装することで、アニメーションの進行状況を追跡することができます。この関数の呼び出し間隔も呼び出し回数も定義されていないことに注意してください。

updateState() を再実装することで、アニメーションの状態変化を追跡することができる。これは、時間によって駆動されないアニメーションに特に有用である。

QVariantAnimation,QPropertyAnimation,QAnimationGroup,The Animation Frameworkも参照のこと

メンバ型ドキュメント

enum QAbstractAnimation::DeletionPolicy

定数説明
QAbstractAnimation::KeepWhenStopped0アニメーションは停止しても削除されません。
QAbstractAnimation::DeleteWhenStopped1アニメーションを停止すると、自動的に削除されます。

enum QAbstractAnimation::Direction

この列挙型は、Running 状態のときのアニメーションの方向を記述する。

定数説明
QAbstractAnimation::Forward0アニメーションの現在の時間は、時間と共に増加する(すなわち、0から終了/持続時間に向かって移動する)。
QAbstractAnimation::Backward1アニメーションの現在の時間は、時間と共に減少する(すなわち、終了/持続時間から0に向かって移動する)。

directionも参照してください

enum QAbstractAnimation::State

この列挙型は、アニメーションの状態を記述します。

定数説明
QAbstractAnimation::Stopped0アニメーションは実行されていない。これはQAbstractAnimation の初期状態であり、終了時にQAbstractAnimation が再び入る状態である。setCurrentTime() が呼び出されるか、start() が呼び出されてアニメーションが開始されるまで、現在時刻は変更されません。
QAbstractAnimation::Paused1アニメーションは一時停止される(つまり、一時的に中断される)。resume() を呼び出すと、アニメーションが再開されます。
QAbstractAnimation::Running2アニメーションは実行中です。制御がイベントループにある間、QAbstractAnimation は一定間隔で現在時刻を更新し、適切なときにupdateCurrentTime() を呼び出します。

state() およびstateChanged()も参照してください

プロパティ・ドキュメント

[bindable read-only] currentLoop : int

注意: このプロパティはQProperty バインディングに対応しています。

このプロパティは、アニメーションの現在のループを保持します。

このプロパティは、アニメーションの現在のループを記述します。デフォルトでは、アニメーションのループカウントは1であるため、現在のループは常に0になります。ループカウントが2であり、アニメーションがその持続時間を超えて実行された場合、アニメーションは自動的に巻き戻され、現在の時間0、現在のループ1、で再スタートします。

現在のループが変わると、QAbstractAnimationcurrentLoopChanged() シグナルを発する。

[bindable] currentTime : int

注意: このプロパティはQProperty バインディングに対応しています。

このプロパティは、アニメーションの現在時刻と進行状況を保持します。

このプロパティは、アニメーションの現在時刻を記述します。setCurrentTime を呼び出して現在時刻を変更することも、start() を呼び出してアニメーションを実行させ、アニメーションの進行に合わせて現在時刻を自動的に設定することもできます。

アニメーションの現在時刻は0から始まり、totalDuration ()で終わります。

注: 他のプロパティをcurrentTimeにバインドすることはできますが、バインディングを設定することはお勧めしません。アニメーションが進行すると、currentTimeは自動的に更新され、バインディングはキャンセルされます。

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

[bindable] direction : Direction

注意: このプロパティはQProperty バインディングに対応しています。

このプロパティは、Running 状態のときのアニメーションの方向を保持します。

この方向は、時間が 0 からアニメーションの継続時間に向かって移動するか、またはstart() が呼び出された後、継続時間の値から 0 に向かって移動するかを示します。

デフォルトでは、このプロパティはForward に設定されています。

[read-only] duration : const int

このプロパティはアニメーションの継続時間を保持します。

duration が -1 の場合、継続時間が未定義であることを意味します。この場合、loopCount は無視されます。

アクセス関数

virtual int duration() const = 0

[bindable] loopCount : int

注意: このプロパティはQProperty バインディングに対応しています。

このプロパティは、アニメーションのループ回数を保持します。

このプロパティは、アニメーションのループ回数を整数で記述します。デフォルトでは、この値は 1 で、アニメーションは一度だけ実行され、その後停止します。この値を変更することで、アニメーションを数回ループさせることができます。0を指定するとアニメーションは全く実行されず、-1を指定するとアニメーションは停止するまで永遠にループします。継続時間が未定義のアニメーションをループさせることはサポートされていません。それは一度だけ実行されます。

[bindable read-only] state : State

注: このプロパティはQProperty バインディングをサポートしています。

アニメーションの状態。

このプロパティは、アニメーションの現在の状態を記述します。アニメーションの状態が変更されると、QAbstractAnimationstateChanged() シグナルを発信します。

注意: 状態が更新されると、currentTime プロパティが更新され、バインディングがキャンセルされることがあります。そのため、アニメーションの状態が変化すると予想されるときに、currentTime プロパティにバインディングを設定するときは注意してください。

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

QAbstractAnimation::QAbstractAnimation(QObject *parent = nullptr)

QAbstractAnimation ベースクラスを構築し、QObject のコンストラクタにparent を渡します。

QVariantAnimation およびQAnimationGroupも参照してください

[virtual noexcept] QAbstractAnimation::~QAbstractAnimation()

アニメーションが実行中の場合は停止し、QAbstractAnimation を破棄します。アニメーションがQAnimationGroup の一部である場合は、破棄される前に自動的に削除されます。

[signal] void QAbstractAnimation::currentLoopChanged(int currentLoop)

QAbstractAnimation currentLoop は現在のループである。

注: currentLoop プロパティに対するノーティファイア・シグナル。

currentLoop() およびloopCount()も参照

int QAbstractAnimation::currentLoopTime() const

現在のループ内の現在時刻を返す。0 からduration() までの値を返す。

duration() およびcurrentTimeも参照のこと

[signal] void QAbstractAnimation::directionChanged(QAbstractAnimation::Direction newDirection)

QAbstractAnimation newDirection が新しい方向である。

注: direction プロパティのノーティファイアシグナル。

directionも参照

[pure virtual] int QAbstractAnimation::duration() const

この純粋な仮想関数はアニメーションの継続時間を返し、QAbstractAnimation が現在の時間を更新する時間を定義します。この持続時間はローカルで、ループ回数は含まれません。

戻り値 -1 は、アニメーションの継続時間が定義されていないことを示します。これは、時間駆動でないアニメーションや、継続時間を簡単に予測できないアニメーション(例えば、ゲームのイベント駆動のオーディオ再生など)に便利です。

アニメーションが並列QAnimationGroup の場合、継続時間はすべてのアニメーションの中で最も長い継続時間となります。アニメーションがシーケンシャルQAnimationGroup の場合、継続時間はすべてのアニメーションの継続時間の合計になります。

注: プロパティ duration のゲッター関数です。

loopCountも参照してください

[override virtual protected] bool QAbstractAnimation::event(QEvent *event)

再インプリメント:QObject::event(QEvent *e).

[signal] void QAbstractAnimation::finished()

QAbstractAnimation は、アニメーションが停止し、終了した後にこのシグナルを発します。

このシグナルはstateChanged() の後に発せられる。

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

QAnimationGroup *QAbstractAnimation::group() const

このアニメーションがQAnimationGroup の一部である場合、この関数はそのグループへのポインタを返し、そうでない場合はnullptr を返す。

QAnimationGroup::addAnimation()も参照

[slot] void QAbstractAnimation::pause()

アニメーションを一時停止する。アニメーションが一時停止すると、state() は Paused を返す。resume() またはstart() が呼び出されるまで、currentTime の値は変更されません。現在の時刻から続行したい場合は、resume() を呼び出します。

start()、state()、resume()も参照

[slot] void QAbstractAnimation::resume()

一時停止したアニメーションを再開します。アニメーションが再開されると、resumed() とstateChanged() シグナルを発します。currenttime は変更されません。

start(),pause(),state()も参照

[slot] void QAbstractAnimation::setPaused(bool paused)

paused が真の場合、アニメーションは一時停止される。paused が偽の場合、アニメーションは再開されます。

state()、pause()、resume()も参照してください

[slot] void QAbstractAnimation::start(QAbstractAnimation::DeletionPolicy policy = KeepWhenStopped)

アニメーションを開始する。policy 引数は、アニメーションが終わったら削除するかどうかを指定する。アニメーションが始まると、stateChanged() シグナルが発せられ、state() は Running を返す。制御がイベントループに達すると、アニメーションはそれ自体で実行され、アニメーションの進行に合わせて定期的にupdateCurrentTime() が呼び出されます。

アニメーションが現在停止しているか、すでに終了している場合、start() を呼び出すと、アニメーションが巻き戻され、最初からやり直されます。アニメーションが終端に達すると、アニメーションは停止するか、ループ・レベルが 1 より大きい場合は、巻き戻して最初から続行します。

アニメーションがすでに実行されている場合、この関数は何もしません。

stop() およびstate()も参照してください

[signal] void QAbstractAnimation::stateChanged(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)

QAbstractAnimation このシグナルは、アニメーションの状態が から に変更されるたびに発せられます。 このシグナルは、virtual () 関数が呼び出された後に発せられます。oldState newState updateState

注: プロパティstate の通知シグナル。

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

[slot] void QAbstractAnimation::stop()

アニメーションを停止する。アニメーションが停止すると、stateChanged() シグナルを発し、state() は Stopped を返す。現在時刻は変更されない。

アニメーションが終了した後(すなわち、currentLoopTime() ==duration() かつcurrentLoop() >loopCount() - 1)、アニメーションが自動的に停止した場合、finished() シグナルが発せられる。

start() およびstate()も参照

int QAbstractAnimation::totalDuration() const

ループカウントを含む、アニメーションの総実効時間を返します。

duration() およびcurrentTimeも参照ください

[pure virtual protected] void QAbstractAnimation::updateCurrentTime(int currentTime)

この純粋な仮想関数は、アニメーションのcurrentTime が変わるたびに呼び出される。

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

[virtual protected] void QAbstractAnimation::updateDirection(QAbstractAnimation::Direction direction)

この仮想関数は、アニメーションの方向が変更されたときにQAbstractAnimation から呼び出される。direction の引数は新しい方向です。

setDirection() およびdirection()も参照してください

[virtual protected] void QAbstractAnimation::updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)

この仮想関数は、アニメーションの状態がoldState からnewState に変更されたときにQAbstractAnimation から呼び出される。

start(),stop(),pause(),resume()も参照のこと

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