QVariantAnimation Class

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

ヘッダー #include <QVariantAnimation>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
を継承する: QAbstractAnimation
継承元:

QPropertyAnimation

パブリックタイプ

プロパティ

公共機能

QVariantAnimation(QObject *parent = nullptr)
virtual ~QVariantAnimation()
QBindable<int> bindableDuration()
QBindable<QEasingCurve> bindableEasingCurve()
QVariant currentValue() const
QEasingCurve easingCurve() const
QVariant endValue() const
QVariant keyValueAt(qreal step) const
QVariantAnimation::KeyValues keyValues() const
void setDuration(int msecs)
void setEasingCurve(const QEasingCurve &easing)
void setEndValue(const QVariant &value)
void setKeyValueAt(qreal step, const QVariant &value)
void setKeyValues(const QVariantAnimation::KeyValues &keyValues)
void setStartValue(const QVariant &value)
QVariant startValue() const

再実装パブリック関数

virtual int duration() const override

シグナル

void valueChanged(const QVariant &value)

保護された機能

virtual QVariant interpolated(const QVariant &from, const QVariant &to, qreal progress) const
virtual void updateCurrentValue(const QVariant &value)

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

virtual bool event(QEvent *event) override
virtual void updateCurrentTime(int) override
virtual void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) override
void qRegisterAnimationInterpolator(QVariant (*)(const T &, const T &, qreal) func)

詳細説明

このクラスはアニメーション・フレームワークの一部である。プロパティとアイテムのアニメーションの基本クラスとして機能し、共有機能のための関数があります。

このクラスはQVariant秒間の補間を行いますが、補間値の使用はサブクラスに任せます。現在、Qt は Qtプロパティをアニメーション化するQPropertyAnimation を提供しています。このようなプロパティをアニメーション化したい場合は、QPropertyAnimation クラスの説明を参照してください。

次に、setStartValue ()とsetEndValue ()を呼び出すことで、プロパティの開始値と終了値を設定し、最後にstart ()を呼び出してアニメーションを開始します。QVariantAnimation は、ターゲット・オブジェクトのプロパティを補間し、valueChanged() を呼び出します。現在値の変化に反応するには、updateCurrentValue() 仮想関数を再実装するか、そのシグナルに接続する必要があります。

また、開始値と終了値の間に指定したステップの値を設定することも可能です。この場合、補間は指定されたステップでこれらのポイントに接触します。開始値と終了値は、0.0と1.0のキー値として定義されていることに注意。

QVariantAnimationが値を補間する方法には、2つの方法があります。setEasingCurve() を呼び出してイージングカーブを設定し、setDuration() を呼び出して持続時間を設定します。QVariantAnimationのサブクラスを作成し、仮想interpolated ()関数を再実装することで、QVariantの補間方法を変更することができます。

Qt プロパティとして宣言したくないQVariantがある場合、QVariantAnimation をサブクラス化することもできます。しかし、ほとんどの場合、QVariant をプロパティとして宣言した方が良いことに注意してください。

すべてのQVariant 型がサポートされているわけではありません。以下は、現在サポートされているQVariant 型のリストです:

カスタム型を含む他のバリアント型を補間する必要がある場合は、自分で補間を実装する必要があります。これを行うには、与えられた型の補間関数を登録します。この関数は3つのパラメータをとります:開始値、終了値、現在の進行状況です。

    QVariantmyColorInterpolator(constQColor&start, constQColor&endqrealprogress) { ... returnQColor(...); } ...    qRegisterAnimationInterpolator<QColor>(myColorInterpolator);

もう1つの方法は、interpolated ()を再実装することで、補間される値の補間値を返す。

QPropertyAnimation,QAbstractAnimation,The Animation Frameworkも参照のこと

メンバ型ドキュメント

[alias] QVariantAnimation::KeyValue

これはstd::pair<qreal,QVariant>の型定義である。

QVariantAnimation::KeyValues

これはQList<KeyValue> の typedef である。

プロパティ・ドキュメンテーション

[read-only] currentValue : const QVariant

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

このプロパティは現在値を記述する。start valueend value の間の補間値で、進行のために現在時刻を使用する。この値自体は、interpolated() から取得されます。 () は、アニメーションの実行中に繰り返し呼び出されます。

QVariantAnimation は、現在の値が変更されると、仮想の () 関数を呼び出します。これは、更新を追跡する必要があるサブクラスにとって特に便利です。例えば、 は QtupdateCurrentValue QPropertyAnimation プロパティのアニメーションにこの関数を使用します。

アクセス関数

QVariant currentValue() const

Notifier シグナル:

void valueChanged(const QVariant &value)

startValue およびendValueも参照して ください。

[bindable] duration : int

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

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

このプロパティは、アニメーションの継続時間をミリ秒単位で記述します。デフォルトは250ミリ秒です。

QAbstractAnimation::duration()も参照してください

[bindable] easingCurve : QEasingCurve

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

このプロパティは、アニメーションのイージングカーブを保持します。

このプロパティはアニメーションのイージングカーブを定義します。デフォルトでは、線形イージングカーブが使用され、線形補間となります。他のカーブも用意されており、例えばQEasingCurve::InCirc は円形のエントリーカーブを提供します。他の例としては、QEasingCurve::InOutElastic があり、これは補間されたバリアントの値に弾性効果を与えます。

QVariantAnimation は、 () を使って、アニメーションの「正規化された進捗」(currentTime / totalDuration) を、アニメーションで実際に使われる実効進捗に変換します。 () が呼び出されたときの進捗は、この有効な進捗です。また、 のステップは、この有効な進捗を参照しています。QEasingCurve::valueForProgress interpolated keyValues

イージングカーブは、インターポレーター、interpolated() 仮想関数、およびアニメーションのデュレーションとともに使用され、アニメーションの進行に応じて現在値がどのように変化するかを制御します。

endValue : QVariant

このプロパティは、アニメーションの終了値を保持する

このプロパティは、アニメーションの終了値を記述する。

アクセス関数です:

QVariant endValue() const
void setEndValue(const QVariant &value)

startValueも参照してください

startValue : QVariant

このプロパティは、アニメーションの任意の開始値を保持する

このプロパティは、アニメーションのオプションの開始値を記述する。省略された場合、または nullQVariant が開始値として割り当てられた場合、アニメーションは、アニメーションが開始されたときの現在の終了位置を使用します。

アクセス関数:

QVariant startValue() const
void setStartValue(const QVariant &value)

endValueも参照

メンバ関数ドキュメント

QVariantAnimation::QVariantAnimation(QObject *parent = nullptr)

QVariantAnimation オブジェクトを構築します。parentQAbstractAnimation のコンストラクタに渡されます。

[virtual noexcept] QVariantAnimation::~QVariantAnimation()

アニメーションを破壊する。

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

再実装:QAbstractAnimation::event(QEvent *event)。

[virtual protected] QVariant QVariantAnimation::interpolated(const QVariant &from, const QVariant &to, qreal progress) const

この仮想関数は、バリアントfromto の間の線形補間を、progress で、通常は 0 から 1 の間の値で返します。独自の補間アルゴリズムを提供するために、QVariantAnimation のサブクラスでこの関数を再実装することができます。

0より小さい値や1より大きい値を返すQEasingCurve (例えばQEasingCurve::InBack )で補間が動作するためには、補外が可能であることを確認する必要があることに注意してください。データ型のセマンティックが外挿を許さない場合、この関数はそれを潔く処理しなければなりません。

自分のクラスで Qt が既にサポートしているデータ型を扱いたい場合は、この関数の実装QVariantAnimation を呼び出す必要があります (サポートされているデータ型の一覧はクラスQVariantAnimation の説明を参照してください)。

QEasingCurveも参照して ください。

QVariant QVariantAnimation::keyValueAt(qreal step) const

与えられたstep のキーフレーム値を返す。与えられたstep は 0 から 1 の範囲でなければならない。step に対するKeyValue がない場合は、無効なQVariant を返す。

keyValues() およびsetKeyValueAt()も参照

QVariantAnimation::KeyValues QVariantAnimation::keyValues() const

このアニメーションのキーフレームを返します。

keyValueAt() およびsetKeyValues()も参照 ください。

void QVariantAnimation::setKeyValueAt(qreal step, const QVariant &value)

与えられたvalue で、与えられたstep にキーフレームを作成します。与えられたstep は 0 から 1 の範囲でなければなりません。

setKeyValues() およびkeyValueAt()も参照

void QVariantAnimation::setKeyValues(const QVariantAnimation::KeyValues &keyValues)

現在のキーフレームを、与えられたkeyValues で置き換える。キーフレームのステップは、0から1の範囲でなければならない。

keyValues() およびkeyValueAt()も参照

[override virtual protected] void QVariantAnimation::updateCurrentTime(int)

を再定義する:QAbstractAnimation::updateCurrentTime(int currentTime).

[virtual protected] void QVariantAnimation::updateCurrentValue(const QVariant &value)

この仮想関数は、アニメーションの現在値が変わるたびに呼び出される。value の引数は新しい現在値です。

基底クラスの実装は何もしません。

currentValueも参照してください

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

再実装:QAbstractAnimation::updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState).

[signal] void QVariantAnimation::valueChanged(const QVariant &value)

QVariantAnimation は、現在の が変更されるたびにこのシグナルを発する。value

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

currentValuestartValueendValueも参照

関連する非会員

template <typename T> void qRegisterAnimationInterpolator(QVariant (*)(const T &, const T &, qreal) func)

カスタムインターポレーターfunc をテンプレートタイプT に登録します。インターポレーターは、アニメーションが構築される前に登録する必要があります。登録を解除する(デフォルトのインターポレーターを使用する)には、funcnullptr に設定します。

注:この関数はスレッドセーフです。

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