QPropertyAnimation Class
QPropertyAnimation クラスは、Qt のプロパティをアニメーション化します。詳細...
Header: | #include <QPropertyAnimation> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
Inherits: | QVariantAnimation |
- 継承メンバを含む全メンバ一覧
- QPropertyAnimation はAnimation Framework の一部です。
プロパティ
- propertyName : QByteArray
- targetObject : QObject*
パブリック関数
QPropertyAnimation(QObject *parent = nullptr) | |
QPropertyAnimation(QObject *target, const QByteArray &propertyName, QObject *parent = nullptr) | |
virtual | ~QPropertyAnimation() |
QBindable<QByteArray> | bindablePropertyName() |
QBindable<QObject *> | bindableTargetObject() |
QByteArray | propertyName() const |
void | setPropertyName(const QByteArray &propertyName) |
void | setTargetObject(QObject *target) |
QObject * | targetObject() const |
再実装された保護された関数
virtual bool | event(QEvent *event) override |
virtual void | updateCurrentValue(const QVariant &value) override |
virtual void | updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) override |
詳しい説明
QPropertyAnimation はQt プロパティを補間します。プロパティ値はQVariantに格納されるため、このクラスはQVariantAnimation を継承し、スーパークラスと同じmeta types のアニメーションをサポートします。
プロパティを宣言するクラスは、QObject でなければなりません。プロパティのアニメーションを可能にするには、セッターを提供しなければなりません(QPropertyAnimation がプロパティの値を設定できるように)。これにより、Qtの多くのウィジェットをアニメーションさせることができる。例を見てみよう:
#include <QApplication> #include <QPushButton> #include <QPropertyAnimation> class MyButtonWidget : public QWidget { public: MyButtonWidget(QWidget *parent = nullptr); }; MyButtonWidget::MyButtonWidget(QWidget *parent) : QWidget(parent) { QPushButton *button = new QPushButton(tr("Animated Button"), this); QPropertyAnimation *anim = new QPropertyAnimation(button, "pos", this); anim->setDuration(10000); anim->setStartValue(QPoint(0, 0)); anim->setEndValue(QPoint(100, 250)); anim->start(); } int main(int argc, char *argv[]) { QApplication a(argc, argv); MyButtonWidget buttonAnimWidget; buttonAnimWidget.resize(QSize(800, 600)); buttonAnimWidget.show(); return a.exec(); }
Note: アニメーションを開始する際にdelete policy を選択することで、アニメーションの寿命をコントロールすることもできます。
どのプロパティをアニメーションさせるかは、プロパティ名とQObject インスタンスをコンストラクタに渡します。そして、プロパティの開始値と終了値を指定します。この手順は、自分で実装したクラスのプロパティでも同じです。QVariant の型がサポートされているか、QVariantAnimation で確認してください。
QVariantAnimation クラスの説明では、アニメーションの設定方法を詳しく説明しています。ただし、開始値が設定されていない場合、プロパティはQPropertyAnimationインスタンスが作成されたときの値から開始されることに注意してください。
QPropertyAnimationは、それ自体で魅力のように動作します。例えば、複数のオブジェクトを含む複雑なアニメーションには、QAnimationGroup 。アニメーション・グループは、他のアニメーションを含むことができ、そのアニメーションが再生されるタイミングを管理することができるアニメーションです。例としてQParallelAnimationGroup を見てください。
QVariantAnimation,QAnimationGroup,The Animation Frameworkも参照してください 。
プロパティのドキュメント
[bindable]
propertyName : QByteArray
Note: このプロパティはQProperty バインディングをサポートしています。
このプロパティは、このアニメーションのターゲットプロパティ名を保持します。
このプロパティは、このアニメーションのターゲットプロパティ名を定義します。このプロパティ名は、アニメーションが動作するために必要です。
[bindable]
targetObject : QObject*
注意: このプロパティはQProperty バインディングに対応しています。
このプロパティは、このアニメーションのターゲットQObject を保持します。
このプロパティは、このアニメーションのターゲットQObject を定義します。
メンバ関数ドキュメント
QPropertyAnimation::QPropertyAnimation(QObject *parent = nullptr)
QPropertyAnimation オブジェクトを構築します。parent はQObject のコンストラクタに渡されます。
QPropertyAnimation::QPropertyAnimation(QObject *target, const QByteArray &propertyName, QObject *parent = nullptr)
QPropertyAnimation オブジェクトを構築する。parent はQObject のコンストラクタに渡される。アニメーションはtarget のプロパティpropertyName を変更します。デフォルトの持続時間は 250 ミリ秒です。
targetObject およびpropertyNameも参照してください 。
[virtual noexcept]
QPropertyAnimation::~QPropertyAnimation()
QPropertyAnimation インスタンスを破棄します。
[override virtual protected]
bool QPropertyAnimation::event(QEvent *event)
再実装します:QVariantAnimation::event(QEvent *event)。
[override virtual protected]
void QPropertyAnimation::updateCurrentValue(const QVariant &value)
再リンプルメント:QVariantAnimation::updateCurrentValue(const QVariant &value)。
この仮想関数は、現在の値が変更されるたびにQVariantAnimation から呼び出されます。value は、更新された新しい値です。これは、ターゲット・オブジェクト上のプロパティの現在値を更新します。
currentValue およびcurrentTimeも参照してください 。
[override virtual protected]
void QPropertyAnimation::updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)
再インプリメント:QVariantAnimation::updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)を再実装しています。
アニメーションの状態が Stopped から Running に変わったときに startValue が定義されていない場合、現在のプロパティ値がアニメーションの初期値として使用されます。
©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。