Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

Vous n'avez pas encore de compte Developpez.com ? L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Developpez.com

Qt

Choisissez la catégorie, puis la rubrique :

Viadeo Twitter Facebook Share on Google+   
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QVariantAnimation

La classe QVariantAnimation fournit une classe de base abstraite pour les animations. Plus d'informations...

#include <QVariantAnimation>
  

Héritage

Hérite de QAbstractAnimation.

Hérité par QPropertyAnimation.

Description détaillée

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.

Type

typedef QVariantAnimation::KeyValue

Il s'agit d'une définition de type pour QPair<qreal, QVariant>.

typedef QVariantAnimation::KeyValues

Il s'agit d'une définition de type pour QVector<KeyValue>

Propriétés

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.

Fonctions d'accès

QVariant currentValue () const

Signal de notification

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.

Fonctions d'accès

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.

Fonctions d'accès

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.

Fonctions d'accès

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.

Fonctions d'accès

QVariant startValue () const
void setStartValue ( const QVariant & value )

Voir aussi endValue.

Fonctions membres

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.

En relation mais non membres

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.

Remerciements

Merci à Jonathan Courtois pour la traduction et à Thibaut Cuvelier et à Jacques Thery pour leur relecture !

Warning: include(): https:// wrapper is disabled in the server configuration by allow_url_include=0 in /home/developpez/www/developpez-com/upload/qt/doc/bs.php on line 4 Warning: include(https://qt.developpez.com/index/rightColumn): failed to open stream: no suitable wrapper could be found in /home/developpez/www/developpez-com/upload/qt/doc/bs.php on line 4 Warning: include(): Failed opening 'https://qt.developpez.com/index/rightColumn' for inclusion (include_path='.:/usr/php53/lib/php') in /home/developpez/www/developpez-com/upload/qt/doc/bs.php on line 4
Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 4.6
Copyright © 2020 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur, une redirection cassée ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
Responsable bénévole de la rubrique Qt : Thibaut Cuvelier -

Partenaire : Hébergement Web