QPropertyAnimation Class
La classe `QPropertyAnimation` permet d'animer les propriétés Qt. En savoir plus...
| En-tête : | #include <QPropertyAnimation> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
| Hérite de : | QVariantAnimation |
- Liste de tous les membres, y compris les membres hérités
- QPropertyAnimation fait partie du framework d'animation.
Propriétés
- propertyName : QByteArray
- targetObject : QObject*
Fonctions publiques
| 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 |
Fonctions protégées réimplémentées
| virtual bool | event(QEvent *event) override |
| virtual void | updateCurrentValue(const QVariant &value) override |
| virtual void | updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) override |
Description détaillée
QPropertyAnimation effectue une interpolation sur les propriétés Qt. Les valeurs des propriétés étant stockées dans des objets de type ` QVariant`, la classe hérite de ` QVariantAnimation` et prend en charge l'animation des mêmes ` meta types ` que sa classe parente.
Une classe déclarant des propriétés doit être une classe de type « QObject ». Pour permettre l'animation d'une propriété, elle doit fournir un setter (afin que QPropertyAnimation puisse définir la valeur de la propriété). Notez que cela permet d'animer de nombreux Qt Widgets. Voyons un exemple :
#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();
}Remarque : vous pouvez également contrôler la durée d’une animation en choisissant une instance de ` delete policy ` lors du lancement de l’animation.
Le nom de la propriété et l’instance d’ QObject correspondant à la propriété à animer sont transmis au constructeur. Vous pouvez ensuite spécifier les valeurs de départ et de fin de la propriété. La procédure est identique pour les propriétés des classes que vous avez implémentées vous-même : il suffit de vérifier sur QVariantAnimation que votre type d’ QVariant est pris en charge.
La description de la classe ` QVariantAnimation ` explique en détail comment configurer l’animation. Notez toutefois que si aucune valeur de départ n’est définie, la propriété commencera à la valeur qu’elle avait lors de la création de l’instance de `QPropertyAnimation`.
QPropertyAnimation fonctionne à merveille en soi. Pour les animations complexes qui, par exemple, contiennent plusieurs objets, QAnimationGroup est fourni. Un groupe d’animations est une animation qui peut contenir d’autres animations et qui peut gérer le moment où celles-ci sont lues. Consultez QParallelAnimationGroup pour voir un exemple.
Voir également QVariantAnimation, QAnimationGroup et The Animation Framework.
Documentation sur les propriétés
[bindable] propertyName : QByteArray
Remarque : cette propriété prend en charge les liaisons de type « QProperty ».
Cette propriété contient le nom de la propriété cible de cette animation
Cette propriété définit le nom de la propriété cible de cette animation. Le nom de la propriété est obligatoire pour que l'animation fonctionne.
Fonctions d'accès :
| QByteArray | propertyName() const |
| void | setPropertyName(const QByteArray &propertyName) |
[bindable] targetObject : QObject*
Remarque : cette propriété prend en charge les liaisons de type « QProperty ».
Cette propriété contient l'QObject cible de cette animation.
Cette propriété définit l'QObject cible de cette animation.
Fonctions d'accès :
| QObject * | targetObject() const |
| void | setTargetObject(QObject *target) |
Documentation sur les fonctions membres
QPropertyAnimation::QPropertyAnimation(QObject *parent = nullptr)
Créez un objet `QPropertyAnimation`. L'parent ` est transmis au constructeur de ` QObject`.
QPropertyAnimation::QPropertyAnimation(QObject *target, const QByteArray &propertyName, QObject *parent = nullptr)
Créez un objet `QPropertyAnimation`. ` parent ` est transmis au constructeur de ` QObject`. L'animation modifie la propriété ` propertyName ` de ` target`. La durée par défaut est de 250 ms.
Voir également targetObject et propertyName.
[virtual noexcept] QPropertyAnimation::~QPropertyAnimation()
Supprime l'instance de ` QPropertyAnimation `.
[override virtual protected] bool QPropertyAnimation::event(QEvent *event)
Réimplémente : QVariantAnimation::event(QEvent *event).
[override virtual protected] void QPropertyAnimation::updateCurrentValue(const QVariant &value)
Réimplémente : QVariantAnimation::updateCurrentValue(const QVariant &value).
Cette fonction virtuelle est appelée par ` QVariantAnimation ` chaque fois que la valeur actuelle change. ` value ` est la nouvelle valeur mise à jour. Elle met à jour la valeur actuelle de la propriété sur l'objet cible, sauf si l'animation est arrêtée.
Voir également currentValue et currentTime.
[override virtual protected] void QPropertyAnimation::updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)
Réimplémente : ` QVariantAnimation::updateState` (`QAbstractAnimation::State newState, QAbstractAnimation::State oldState`).
Si la méthode startValue n'est pas définie lorsque l'état de l'animation passe de Stopped à Running, la valeur actuelle de la propriété est utilisée comme valeur initiale pour l'animation.
© 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.