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: |
- 継承メンバを含む全メンバ一覧
- QVariantAnimationはAnimation Frameworkの一部です。
パブリックタイプ
プロパティ
|
|
パブリック関数
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
プロパティの説明
[read-only]
currentValue : const QVariant
このプロパティは、アニメーションの現在値を保持します。
このプロパティは現在値を記述する。start value とend 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 オブジェクトを構築します。parent はQAbstractAnimation のコンストラクタに渡されます。
[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 この仮想関数は、バリアントfrom とto の間の線形補間を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 プロパティに対するノーティファイア・シグナル。
currentValue 、startValue 、endValueも参照 。
本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。