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(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 オブジェクトを構築します。parentQObject のコンストラクタに渡されます。

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

QPropertyAnimation オブジェクトを構築する。parentQObject のコンストラクタに渡される。アニメーションは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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。