La classe QVariantAnimation fournit une classe de base abstraite pour les animations. Plus d'informations...
#include <QVariantAnimation>
Hérite de QAbstractAnimation.
Hérité par QPropertyAnimation.
La classe QVariantAnimation fournit une classe de base abstraite pour les animations.
Cette classe fait partie du framework animation. Elle sert de classe de base pour les propriétés et les animations d’éléments et définit les fonctions qui peuvent être factorisées.
QVariantAnimation ne peut pas être utilisée directement puisqu’il s’agit d’une classe abstraite. Elle a une méthode virtuelle pure appelée updateCurrentValue(). La classe réalise les interpolations sur les QVariant, mais laisse l’utilisation des valeurs interpolées à ses sous-classes. Actuellement, Qt fournit QPropertyAnimation, qui anime les propriétés Qt. Voir la description de la classe QPropertyAnimation si vous souhaitez animer ces propriétés.
Vous pouvez ensuite définir les valeurs de début et de fin pour la propriété en appelant setStartValue() et setEndValue(), et finalement appeler start() pour démarrer l’animation. QVariantAnimation va interpoler la propriété de l’objet cible et émettre valueChanged(). Pour réagir à un changement de la valeur courante vous devez réimplémenter la fonction virtuelle updateCurrentValue().
Il est également possible de fixer les valeurs à des étapes déterminées, situées entre la valeur de début et la valeur de fin. L’interpolation passera ensuite par ces points aux étapes spécifiées. Notez que les valeurs de début et de fin sont définies comme étant les valeurs clés à 0,0 et 1,0.
Il y a deux façons de définir comment QVariantAnimation interpole les valeurs. Vous pouvez définir un assouplissement de la courbe en appelant setEasingCurve() et configurer la durée en appelant setDuration(). Vous pouvez changer la façon dont les QVariant sont interpolés en créant une sous-classe de QVariantAnimation et en réimplémentant la fonction virtuelle interpolated().
Réaliser une sous-classe de QVariantAnimation peut être une alternative si vous avez des QVariant que vous ne voulez pas déclarer en tant que propriétés Qt. Notez, toutefois, que dans la plupart des cas, il est préférable de déclarer votre QVariant en tant que propriété.
Tous les types QVariant ne sont pas supportés. Ci-dessous une liste des types QVariant actuellement supportés :
Si vous avez besoin d’interpoler les autres types variants, y compris des types personnalisés, vous devez implémenter l’interpolation vous-même. Pour ce faire, réimplémenter interpolated() qui retourne les valeurs d’interpolation pour la valeur étant interpolée.
Voir aussi QPropertyAnimation, QAbstractAnimation et animation-overview.
currentValue : const QVariant
Cette propriété contient la valeur courante de l’animation.
Elle décrit la valeur courante, une valeur interpolée entre la valeur de début et la valeur de fin, utilisant le temps courant pour la progression de l’animation. La valeur elle-même est obtenue à partir de interpolated(), qui est appelée à plusieurs reprises au cours de l’exécution de l’animation.
QVariantAnimation appelle la fonction virtuelle updateCurrentValue() quand la valeur courante change. Ceci est particulièrement utile pour les sous-classes qui ont besoin de suivre les mises à jour. Par exemple, QPropertyAnimation utilise cette fonction pour animer les propriétés Qt.
QVariant currentValue () const
void valueChanged ( const QVariant & value )
Voir aussi startValue et endValue.
duration : int
Cette propriété contient la durée de l’animation.
Elle décrit la durée de l’animation en millisecondes. La durée par défaut est de 250 millisecondes.
virtual int duration () const
void setDuration ( int msecs )
Voir aussi QAbstractAnimation::duration().
easingCurve : QEasingCurve
Cette propriété contient l’assouplissement de la courbe de l’animation.
Elle définit l’assouplissement de la courbe de l’animation. Par défaut, un assouplissement de la courbe linéaire est utilisé, donnant une interpolation linéaire. D’autres courbes sont fournies, par exemple, QEasingCurve::InCirc, qui fournit une courbe circulaire. Un autre exemple est QEasingCurve::InOutElastic, qui donne un effet élastique sur les valeurs de la variante interpolée.
L’assouplissement de la courbe est utilisé avec l’interpolateur, la fonction virtuelle interpolated(), la durée de l’animation et iterationCount
, pour contrôler comment la valeur courante change au fur et à mesure de la progression de l’animation.
QEasingCurve easingCurve () const
void setEasingCurve ( const QEasingCurve & easing )
endValue : QVariant
Cette propriété contient la valeur de fin de l’animation.
Elle décrit la valeur de fin de l’animation.
QVariant endValue () const
void setEndValue ( const QVariant & value )
Voir aussi startValue.
startValue : QVariant
Cette propriété contient la valeur optionnelle de début de l’animation.
Elle décrit la valeur optionnelle de début de l’animation. Si elle est omise, ou si un QVariant nul est assigné comme valeur de départ, l’animation va utiliser la position courante de la fin quand l’animation est démarrée.
QVariant startValue () const
void setStartValue ( const QVariant & value )
Voir aussi endValue.
QVariantAnimation::QVariantAnimation ( QObject * parent = 0 )
Construit un objet QVariantAnimation. parent
est passé au constructeur de QAbstractAnimation.
QVariantAnimation::~QVariantAnimation ()
Détruit l’animation.
bool QVariantAnimation::event ( QEvent * event ) [virtual protected]
Réimplémentation de QObject::event().
QVariant QVariantAnimation::interpolated ( const QVariant & from, const QVariant & to, qreal progress ) const [virtual protected]
Cette fonction virtuelle retourne l’interpolation linéaire entre les variants from
et to
à progress
, en général 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 une QEasingCurve qui retourne une valeur inférieure à 0 ou supérieure à 1 (telle que QEasingCurve::InBack), vous devriez vous assurer qu’elle peut être extrapolée. Si la sémantique du type de données ne permet pas l’extrapolation, cette fonction doit gérer cela avec élégance.
Vous devez appeler l’implémentation QVariantAnimation mise en oeuvre dans cette fonction si vous souhaitez que votre classe gère les types déjà supportés par Qt (voir la description de la classe QVariantAnimation pour une liste des types pris en charge).
Voir aussi QEasingCurve.
QVariant QVariantAnimation::keyValueAt ( qreal step ) const
Retourne la valeur de la keyframe pour l’indice step
donné. step
doit être compris entre 0 et 1. S’il n’y a pas de KeyValue pour l’indice step
, elle retourne un QVariant invalide.
Voir aussi keyValues() et setKeyValueAt().
KeyValues QVariantAnimation::keyValues () const
Retourne les keyframes de l’animation.
Voir aussi keyValueAt() et setKeyValueAt().
void QVariantAnimation::setKeyValueAt ( qreal step, const QVariant & value )
Crée une keyframe à l’indice step
donné avec la valeur value
donnée. step
doit être compris entre 0 et 1.
Voir aussi setKeyValueAt() et keyValueAt().
void QVariantAnimation::setKeyValues ( const KeyValues & keyValues )
Remplace la série actuelle de keyframes par keyValues
. L’étape des keyframes doit être compris entre 0 et 1.
Voir aussi keyValues() et keyValueAt().
void QVariantAnimation::updateCurrentTime ( int ) [virtual protected]
Réimplémentation de QAbstractAnimation::updateCurrentTime().
void QVariantAnimation::updateCurrentValue ( const QVariant & value ) [pure virtual protected]
Cette fonction virtuelle pure est appelée à chaque fois que la valeur de l’animation courante change. value
est la nouvelle valeur courante.
Voir aussi currentValue.
void QVariantAnimation::updateState ( QAbstractAnimation::State newState, QAbstractAnimation::State oldState ) [virtual protected]
Réimplémentation de QAbstractAnimation::updateState().
void QVariantAnimation::valueChanged ( const QVariant & value ) [signal]
QVariantAnimation émet ce signal chaque fois que la valeur courante change.
Voir aussi currentValue, startValue et endValue.
void qRegisterAnimationInterpolator ( QVariant(* ) ( const T & from, const T & to, qreal progress ) func )
Enregistre une fonction d’interpolation func
personnalisée pour le type de template T
. L’interpolateur doit être enregistré avant que l’animation soit construite. Pour annuler l’enregistrement (et utiliser l’interpolateur par défaut), définir func
à 0.
Remarque : Cette fonction est thread-safe.
Merci à <!johnlamericain!> pour la traduction et à <!dourouc!> et à <!jacques_jean!> pour leur relecture !
Copyright © 2025 Developpez LLC Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.