QVariantAnimation Class
La classe QVariantAnimation est une classe de base pour les animations. Plus d'informations...
| En-tête : | #include <QVariantAnimation> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
| Hérite : | QAbstractAnimation |
| Hérité par : |
- Liste de tous les membres, y compris les membres hérités
- QVariantAnimation fait partie de Animation Framework.
Types publics
Propriétés
|
|
Fonctions publiques
| QVariantAnimation(QObject *parent = nullptr) | |
| virtual | ~QVariantAnimation() |
| QBindable<int> | bindableDuration() |
| QBindable<QEasingCurve> | bindableEasingCurve() |
| QVariant | currentValue() const |
| virtual int | duration() const override |
| 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 |
Signaux
| void | valueChanged(const QVariant &value) |
Fonctions protégées
| virtual QVariant | interpolated(const QVariant &from, const QVariant &to, qreal progress) const |
| virtual void | updateCurrentValue(const QVariant &value) |
Fonctions protégées réimplémentées
| virtual bool | event(QEvent *event) override |
| virtual void | updateCurrentTime(int) override |
| virtual void | updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) override |
Non-membres apparentés
| void | qRegisterAnimationInterpolator(QVariant (*)(const T &, const T &, qreal) func) |
Description détaillée
Cette classe fait partie du cadre d'animation. Elle sert de classe de base pour les animations de propriétés et d'éléments, avec des fonctions partagées.
La classe effectue une interpolation sur QVariants, mais laisse l'utilisation des valeurs interpolées à ses sous-classes. Actuellement, Qt fournit QPropertyAnimation, qui anime les propriétés Qt. Consultez la description de la classe QPropertyAnimation si vous souhaitez animer de telles propriétés.
Vous pouvez ensuite définir les valeurs de début et de fin de la propriété en appelant setStartValue() et setEndValue(), et enfin appeler start() pour démarrer l'animation. QVariantAnimation interpolera la propriété de l'objet cible et émettra valueChanged(). Pour réagir à un changement de la valeur courante, vous devez réimplémenter la fonction virtuelle updateCurrentValue() ou vous connecter à ce signal.
Il est également possible de définir des valeurs à des étapes spécifiques situées entre la valeur de départ et la valeur finale. L'interpolation touchera alors ces points aux pas spécifiés. Notez que les valeurs de départ et d'arrivée sont définies comme les valeurs clés de 0,0 et 1,0.
Il existe deux façons d'affecter la manière dont QVariantAnimation interpole les valeurs. Vous pouvez définir une courbe d'assouplissement en appelant setEasingCurve() et configurer la durée en appelant setDuration(). Vous pouvez modifier la façon dont les QVariantsont interpolés en créant une sous-classe de QVariantAnimation et en réimplémentant la fonction virtuelle interpolated().
La sous-classe QVariantAnimation peut être une alternative si vous avez des QVariants que vous ne souhaitez pas déclarer en tant que propriétés Qt. Notez cependant que dans la plupart des cas, il est préférable de déclarer votre QVariant comme une propriété.
Tous les types de QVariant ne sont pas pris en charge. Vous trouverez ci-dessous une liste des types QVariant actuellement pris en charge :
Si vous avez besoin d'interpoler d'autres types de variantes, y compris des types personnalisés, vous devez mettre en œuvre l'interpolation pour ces types vous-même. Pour ce faire, vous pouvez enregistrer une fonction d'interpolation pour un type donné. Cette fonction prend 3 paramètres : la valeur de départ, la valeur d'arrivée et la progression actuelle.
Exemple d'interpolation :
QVariant myColorInterpolator(const QColor &start, const QColor&end, qreal progress) { // ... return QColor(/*...*/) ; }// ...void someFunc() { // ... qRegisterAnimationInterpolator<QColor>(myColorInterpolator); // ...}
Une autre option consiste à réimplémenter interpolated(), qui renvoie des valeurs d'interpolation pour la valeur interpolée.
Voir également QPropertyAnimation, QAbstractAnimation, et The Animation Framework.
Documentation sur les types de membres
[alias] QVariantAnimation::KeyValue
Il s'agit d'un typedef pour std::pair<qreal, QVariant>.
QVariantAnimation::KeyValues
Documentation sur les propriétés
[read-only] currentValue : QVariant
Cette propriété contient la valeur actuelle de l'animation.
Cette propriété décrit la valeur actuelle ; une valeur interpolée entre start value et end value, en utilisant l'heure actuelle pour la progression. La valeur elle-même est obtenue à partir de la fonction interpolated(), qui est appelée à plusieurs reprises pendant le déroulement de l'animation.
QVariantAnimation appelle la fonction virtuelle updateCurrentValue() lorsque la valeur courante change. Cette fonction est particulièrement utile pour les sous-classes qui doivent suivre les mises à jour. Par exemple, QPropertyAnimation utilise cette fonction pour animer les propriétés Qt.
Fonctions d'accès :
| QVariant | currentValue() const |
Signal Notifier :
| void | valueChanged(const QVariant &value) |
Voir aussi startValue et endValue.
[bindable] duration : int
Remarque : Cette propriété prend en charge les liens QProperty.
Cette propriété indique la durée de l'animation
Cette propriété décrit la durée en millisecondes de l'animation. La durée par défaut est de 250 millisecondes.
Fonctions d'accès :
| virtual int | duration() const override |
| void | setDuration(int msecs) |
Voir également QAbstractAnimation::duration().
[bindable] easingCurve : QEasingCurve
Remarque : Cette propriété prend en charge les liens QProperty.
Cette propriété définit la courbe d'assouplissement de l'animation
Cette propriété définit la courbe d'assouplissement de l'animation. Par défaut, une courbe d'assouplissement linéaire est utilisée, ce qui entraîne une interpolation linéaire. D'autres courbes sont disponibles, par exemple, QEasingCurve::InCirc, qui fournit une courbe d'entrée circulaire. Un autre exemple est QEasingCurve::InOutElastic, qui fournit un effet élastique sur les valeurs de la variante interpolée.
QVariantAnimation utilisera QEasingCurve::valueForProgress() pour transformer la "progression normalisée" (currentTime() / totalDuration()) de l'animation en progression effective réellement utilisée par l'animation. C'est cette progression effective qui sera la progression lorsque interpolated() sera appelé. De même, les étapes du site keyValues se réfèrent à cette progression effective.
La courbe d'assouplissement est utilisée avec l'interpolateur, la fonction virtuelle interpolated() et la durée de l'animation pour contrôler la façon dont la valeur actuelle change au fur et à mesure que l'animation progresse.
Fonctions d'accès :
| QEasingCurve | easingCurve() const |
| void | setEasingCurve(const QEasingCurve &easing) |
endValue : QVariant
Cette propriété décrit la valeur finale de l'animation
Cette propriété décrit la valeur finale de l'animation.
Fonctions d'accès :
| QVariant | endValue() const |
| void | setEndValue(const QVariant &value) |
Voir aussi startValue.
startValue : QVariant
Cette propriété décrit la valeur de départ optionnelle de l'animation
Cette propriété décrit la valeur de départ facultative de l'animation. Si elle est omise, ou si une valeur nulle QVariant est attribuée comme valeur de départ, l'animation utilisera la position actuelle de la fin lorsque l'animation est lancée.
Fonctions d'accès :
| QVariant | startValue() const |
| void | setStartValue(const QVariant &value) |
Voir également endValue.
Documentation sur les fonctions membres
QVariantAnimation::QVariantAnimation(QObject *parent = nullptr)
Construit un objet QVariantAnimation. parent est transmis au constructeur de QAbstractAnimation.
[virtual noexcept] QVariantAnimation::~QVariantAnimation()
Détruit l'animation.
[override virtual protected] bool QVariantAnimation::event(QEvent *event)
Réimplémente : QAbstractAnimation::event(QEvent *event).
[virtual protected] QVariant QVariantAnimation::interpolated(const QVariant &from, const QVariant &to, qreal progress) const
Cette fonction virtuelle renvoie l'interpolation linéaire entre les variantes from et to, à progress, généralement une valeur comprise entre 0 et 1. Vous pouvez réimplémenter cette fonction dans une sous-classe de QVariantAnimation pour fournir votre propre algorithme d'interpolation.
Notez que pour que l'interpolation fonctionne avec un QEasingCurve qui renvoie une valeur inférieure à 0 ou supérieure à 1 (comme QEasingCurve::InBack), vous devez vous assurer qu'il peut extrapoler. Si la sémantique du type de données ne permet pas l'extrapolation, cette fonction doit le gérer avec élégance.
Vous devez appeler l'implémentation QVariantAnimation de cette fonction si vous voulez que votre classe gère les types déjà pris en charge par Qt XML (voir la description de la classe QVariantAnimation pour une liste des types pris en charge).
Voir aussi QEasingCurve.
QVariant QVariantAnimation::keyValueAt(qreal step) const
Renvoie la valeur de l'image clé pour l'adresse step donnée. L'adresse step doit être comprise entre 0 et 1. S'il n'y a pas de KeyValue pour step, il renvoie une adresse QVariant invalide.
Voir aussi keyValues() et setKeyValueAt().
QVariantAnimation::KeyValues QVariantAnimation::keyValues() const
Renvoie les images clés de cette animation.
Voir aussi keyValueAt() et setKeyValues().
void QVariantAnimation::setKeyValueAt(qreal step, const QVariant &value)
Crée une image clé à l'adresse step avec l'adresse value. L'adresse step doit être comprise entre 0 et 1.
Voir aussi setKeyValues() et keyValueAt().
void QVariantAnimation::setKeyValues(const QVariantAnimation::KeyValues &keyValues)
Remplace l'ensemble actuel d'images clés par l'image donnée keyValues. Le pas des images clés doit être compris entre 0 et 1.
Voir aussi keyValues() et keyValueAt().
[override virtual protected] void QVariantAnimation::updateCurrentTime(int)
Réimplémente : QAbstractAnimation::updateCurrentTime(int currentTime).
[virtual protected] void QVariantAnimation::updateCurrentValue(const QVariant &value)
Cette fonction virtuelle est appelée à chaque fois que la valeur courante de l'animation change. L'argument value est la nouvelle valeur courante.
L'implémentation de la classe de base ne fait rien.
Voir aussi currentValue.
[override virtual protected] void QVariantAnimation::updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)
Réimplémente : QAbstractAnimation::updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState).
[signal] void QVariantAnimation::valueChanged(const QVariant &value)
QVariantAnimation émet ce signal lorsque l'adresse value est modifiée.
Note : Signal de notification pour la propriété currentValue.
Voir également currentValue, startValue, et endValue.
Non-membres apparentés
template <typename T> void qRegisterAnimationInterpolator(QVariant (*)(const T &, const T &, qreal) func)
Enregistre un interpolateur personnalisé func pour le type de modèle T. L'interpolateur doit être enregistré avant que l'animation ne soit construite. Pour annuler l'enregistrement (et utiliser l'interpolateur par défaut), définissez func à nullptr.
Remarque : cette fonction est à l'épreuve des threads.
© 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.