QVariantAnimation Class

QVariantAnimationクラスはアニメーションの基本クラスです。詳細...

Header: #include <QVariantAnimation>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Inherits: QAbstractAnimation
Inherited By:

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 型のリストです:

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

    QVariant myColorInterpolator(const QColor &start, const QColor &end, qreal progress)
    {
        ...
        return QColor(...);
    }
    ...
    qRegisterAnimationInterpolator<QColor>(myColorInterpolator);

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

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

メンバ型ドキュメント

[alias] QVariantAnimation::KeyValue

これは std::pair<qreal,QVariant> の typedef です。

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

QVariantAnimation この仮想関数は、バリアントfromto の間の線形補間をprogress で返します。

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)

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

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

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