このページでは

QPropertyAnimation Class

QPropertyAnimation クラスは、Qt のプロパティにアニメーションを適用します。詳細...

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

プロパティ

パブリック関数

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 Widgetsをアニメーション化できることに注意してください。例を見てみましょう:

#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();
}

注: アニメーションの開始時にdelete policy を選択することで、アニメーションの継続時間を制御することもできます 。

どのプロパティをアニメーション化するか、そのプロパティ名とQObject のインスタンスをコンストラクタに引数として渡します。その後、そのプロパティの開始値と終了値を指定できます。自分で実装したクラスのプロパティについても手順は同様です。ただし、QVariantAnimation で、QVariant 型がサポートされているか確認してください。

QVariantAnimation クラスの説明には、アニメーションの設定方法が詳細に記載されています。ただし、開始値が設定されていない場合、プロパティはQPropertyAnimationインスタンスが作成された時点の値からアニメーションが開始される点に注意してください。

QPropertyAnimationは単体でも非常にうまく機能します。たとえば、複数のオブジェクトを含むような複雑なアニメーションには、QAnimationGroup が提供されています。アニメーショングループとは、他のアニメーションを含めることができ、そのアニメーションの再生タイミングを管理できるアニメーションのことです。例については、QParallelAnimationGroup を参照してください。

QVariantAnimation 、QAnimationGroup 、および「アニメーションフレームワーク」も参照してください 。

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

[bindable] propertyName : QByteArray

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

このプロパティには、このアニメーションのターゲットプロパティ名が格納されます。

このプロパティは、このアニメーションの対象プロパティ名を定義します。アニメーションを動作させるには、このプロパティ名が必須です。

アクセス関数:

QByteArray propertyName() const
void setPropertyName(const QByteArray &propertyName)

[bindable] targetObject : QObject*

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

このプロパティは、このアニメーションのターゲットQObject を保持します。

このプロパティは、このアニメーションのターゲットとなるQObject を定義します。

アクセス関数:

QObject *targetObject() const
void setTargetObject(QObject *target)

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

QPropertyAnimation::QPropertyAnimation(QObject *parent = nullptr)

QPropertyAnimation オブジェクトを作成します。parent は、QObject のコンストラクタに渡されます。

QPropertyAnimation::QPropertyAnimation(QObject *target, const QByteArray &propertyName, QObject *parent = nullptr)

QPropertyAnimation オブジェクトを作成します。parent は、QObject のコンストラクタに渡されます。このアニメーションは、target のpropertyName プロパティを変更します。デフォルトの持続時間は 250ms です。

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 が定義されていない場合、現在のプロパティ値がアニメーションの初期値として使用されます。

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