Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QTimeLine

La classe QTimeLine fournit une ligne temporelle pour contr�ler les animations. Plus d'informations...

#include <QTimeLine>

Voir la position dans l'arbre des classes.

H�ritage

H�rite de QObject.

Description d�taill�e

La classe QTimeLine fournit une ligne temporelle pour contr�ler les animations.

Cela est plus g�n�ralement utilis� pour animer un contr�leur d'interface graphique en appelant un slot p�riodiquement. Vous pouvez construire une ligne temporelle en passant sa dur�e en millisecondes au constructeur de QTimeLine. La dur�e de la ligne temporelle d�crit pour combien de temps l'animation sera ex�cut�e. Ensuite vous modifiez la longueur de fen�tre suivante (une distance de frame appropri�e) en appelant setFrameRange(). Pour terminer, connectez le signal frameChanged() � un slot adapt� dans le widget que vous voulez animer (c'est-�-dire � setValue() dans QProgressBar). Lorsque vous proc�dez en appelant start(), QTimeLine entre dans l'�tat Running et commence � �mettre frameChanged() � intervalles r�guliers, (entra�nant l'augmentation de la valeur de la propri�t� de votre widget connect�, de l'extr�mit� inf�rieure � la partie sup�rieure de votre frame, � un taux constant). Vous pouvez sp�cifier l'intervalle de mise � jour en appelant setUpdateInterval(). Lorsqu'il a termin�, QTimeLine entre dans l'�tat NotRunning et �met finished().

Exemple :

...
progressBar = new QProgressBar(this);
progressBar->setRange(0, 100);
 
// Constuit une ligne d'une seconde, allant de 0 � 100
QTimeLine *timeLine = new QTimeLine(1000, this);
timeLine->setFrameRange(0, 100);
connect(timeLine, SIGNAL(frameChanged(int)), progressBar, SLOT(setValue(int)));
 
// Cliquer sur le bouton poussoir d�marrera l'animation de la barre de progression
pushButton = new QPushButton(tr("Start animation"), this);
connect(pushButton, SIGNAL(clicked()), timeLine, SLOT(start()));
...

Vous pouvez �galement utiliser QTimeLine avec le framework Graphics View pour r�aliser des animations. La classe QGraphicsItemAnimation impl�mente l'animation des QGraphicsItems avec une ligne temporelle.

Par d�faut, la ligne temporelle ne s'ex�cute qu'une seule fois, du d�but et en avant jusqu'� la fin. Vous devez appeler � nouveau start pour recommencer au d�but. Pour faire boucler la ligne temporelle, vous pouvez appeler setLoopCount(), en passant en param�tre le nombre de r�p�titions de la ligne temporelle. La direction peut �galement �tre chang�e, c'est-�-dire aller en l'arri�re, en appelant setDirection(). Vous pouvez �galement mettre en pause et retirer la pause de la ligne temporelle pendant son ex�cution en appelant setPaused(). Pour un contr�le interactif, la fonction setCurrentTime() est fournie, qui modifie directement la position du temps dans la ligne temporelle. Bien que ce soit dans l'�tat NotRunning qu'elle est la plus utile (c'est-�-dire connect�e � un signal valueChanged() dans un QSlider), cette fonction peut �tre appel�e � n'importe quel moment.

L'interface de frame est utile pour des widgets standards, mais QTimeLine peut �tre utilis� pour contr�ler tout type d'animation. Le coeur de QTimeLine r�side dans la fonction valueForTime(), qui g�n�re une valeur entre 0 et 1 pour un temps donn�. Cette valeur est typiquement utilis�e pour d�crire les �tapes d'un animation, o� 0 en est la premi�re �tape, et 1 la derni�re. Quand elle est en cours d'ex�cution, QTimeLine g�n�re des valeurs entre 0 et 1 en appelant valueForTime() et en �mettant valueChanged(). Par d�faut, valueForTime() applique une interpolation algorithmique pour g�n�rer ces valeurs. Vous pouvez choisir � partir d'un ensemble d'algorithmes pr�d�fini de ligne temporelle en appelant setCurveShape().

Notez que, par d�faut, QTimeLine utilise la forme de la courbe EaseInOut, qui fournit une valeur qui grandit lentement, puis grandit r�guli�rement et, finalement, grandit lentement. Pour une ligne temporelle personnalis�e, vous pouvez r�impl�menter valueForTime(), dans ce cas, la propri�t� curveShape de QTimeLine est ignor�e.

Voir aussi QProgressBar, QProgressDialog et QGraphicsItemAnimation.

Type

enum QTimeLine::CurveShape

Cette �num�ration d�crit la forme par d�faut de la courbe de valeur de QTimeLine. La forme par d�faut est EaseInOutCurve. La courbe d�finit la relation entre la valeur et la ligne temporelle.

Constante Valeur Description
QTimeLine::EaseInCurve 0 La valeur commence par grandir doucement, puis augmente en vitesse.
QTimeLine::EaseOutCurve 1 La valeur commence par grandir r�guli�rement, puis termine doucement.
QTimeLine::EaseInOutCurve 2 La valeur commence par grandir doucement, puis s'ex�cute r�guli�rement, puis grandit de nouveau doucement.
QTimeLine::LinearCurve 3 La valeur grandit lin�airement (par exemple, si la dur�e est de 1000 ms, la valeur � 500 ms est 0.5).
QTimeLine::SineCurve 4 La valeur grandit sinuso�dalement.
QTimeLine::CosineCurve 5 La valeur grandit cosinuso�dalement.

Voir aussi setCurveShape().

enum QTimeLine::Direction

Cette �num�ration d�crit la direction de la ligne temporelle quand elle est dans l'�tat Running.

Constante Valeur Description
QTimeLine::Forward 0 Le temps courant de la ligne temporelle augmente avec le temps (c'est-�-dire qu'il se d�place de 0 vers la fin / dur�e).
QTimeLine::Backward 1 Le temps courant de la ligne temporelle diminue avec le temps (c'est-�-dire qu'il se d�place de la fin / dur�e vers 0).

Voir aussi setDirection().

enum QTimeLine::State

Cette �num�ration d�crit l'�tat de la ligne temporelle.

Constante Valeur Description  
QTimeLine::NotRunning 0 La ligne temporelle n'est pas ex�cut�e. C'est l'�tat initial de QTimeLine et c'est l'�tat de QTimeLine dans lequel on retourne quand elle est termin�e. Le temps courant, la valeur et la frame restent inchang�s jusqu'� ce que setCurrentTime() soit appel�e ou que la ligne temporelle est d�marr�e en appelant start().
QTimeLine::Paused 1 La ligne temporelle est mise en pause (c'est-�-dire, temporairement suspendue). L'appel de setPaused(false) relancera son activit�.  
QTimeLine::Running 2 La ligne temporelle est en cours d'ex�cution. Alors que le contr�le est dans la boucle d'�v�nement, QTimeLine mettra � jour son temps courant � intervalles r�guliers, en �mettant valueChanged() et frameChanged() lorsque cela est appropri�.

Voir aussi state() et stateChanged().

Propri�t�s

currentTime : int

Cette propri�t� contient le temps courant de la ligne temporelle.

Quand QTimeLine est dans l'�tat Running, cette valeur est mise � jour continuellement en fonction de la dur�e et de la direction de la ligne temporelle. Autrement, il s'agit de cette valeur qui �tait courante quand stop() a �t� appel� la derni�re fois ou de la valeur d�finie par setCurrentTime().

Par d�faut, cette propri�t� contient la valeur 0.

Fonctions d'acc�s

int currentTime () const
void setCurrentTime ( int msec )

curveShape : CurveShape

Cette propri�t� contient la forme de la ligne temporelle.

La forme de la courbe d�crit la relation entre le temps et la valeur pour l'impl�mentation de base de valueForTime().

Si vous avez r�impl�ment� valueForTime(), cette valeur est ignor�e.

Par d�faut, cette propri�t� est d�finie � EaseInOutCurve.

Fonctions d'acc�s

CurveShape curveShape () const
void setCurveShape ( CurveShape shape )

Voir aussi valueForTime().

direction : Direction

Cette propri�t� contient la direction de la ligne temporelle quand QTimeLine est dans l'�tat Running.

Cette direction indique si le temps se d�place de 0 vers la dur�e de la ligne temporelle ou de la dur�e jusqu'� 0, apr�s que start() ait �t� appel�e.

Par d�faut, cette propri�t� est d�finit � Forward.

Fonctions d'acc�s

Direction direction () const
void setDirection ( Direction direction )

duration : int

Cette propri�t� contient la dur�e totale de la ligne temporelle en millisecondes.

Par d�faut, cette valeur est 1000 (soit une seconde), mais vous pouvez la changer, soit en passant une dur�e au constructeur de QTimeLine, soit en appelant setDuration(). La dur�e doit �tre sup�rieure � 0.

Remarque : changer la dur�e ne remet pas le temps courant � 0 ou � la nouvelle dur�e. Vous devez �galement appeler setCurrentTime() avec la valeur d�sir�e.

Fonctions d'acc�s

int duration () const
void setDuration ( int duration )

easingCurve : QEasingCurve

Sp�cifie l'assouplissement de la courbe que la ligne temporelle utilisera. Si, � la fois, l'assouplissement de la courbe et la forme de la courbe sont d�finis, la derni�re propri�t� d�finie �crasera la pr�c�dente. (Si valueForTime() a �t� r�implement�e, il �crasera les deux).

Cette propri�t� a �t� introduite dans Qt 4.6.

Fonctions d'acc�s

QEasingCurve easingCurve () const
void setEasingCurve ( const QEasingCurve & curve )

loopCount : int

Cette propri�t� contient le nombre de fois que la ligne temporelle doit boucler avant de se terminer.

Un compte de boucles de 0 signifie que la ligne temporelle bouclera ind�finiment.

Par d�faut, cette propri�t� contient la valeur 1.

Fonctions d'acc�s

int loopCount () const
void setLoopCount ( int count )

updateInterval : int

Cette propri�t� contient l'intervalle de temps en millisecondes entre chaque mise � jour du temps courant de QTimeLine.

Quand le temps courant est mis � jour, QTimeLine �met valueChanged() si la valeur courante a chang� et frameChanged() si la frame a chang�.

Par d�faut, l'intervalle est de 40 ms, ce qui correspond � 25 mises � jour par seconde.

Fonctions d'acc�s

int updateInterval () const
void setUpdateInterval ( int interval )

Fonctions membres

QTimeLine::QTimeLine ( int duration = 1000, QObject * parent = 0 )

Construit une ligne temporelle avec une dur�e de duration millisecondes. parent est pass� au constructeur de QObject. La dur�e par d�faut est de 1000 millisecondes.

QTimeLine::~QTimeLine () [virtual]

D�truit la ligne temporelle.

int QTimeLine::currentFrame () const

Retourne la frame correspondant au temps courant.

Voir aussi currentTime(), frameForTime() et setFrameRange().

qreal QTimeLine::currentValue () const

Retourne la valeur correspondante du temps courant.

Voir aussi valueForTime() et currentFrame().

int QTimeLine::endFrame () const

Retourne la derni�re frame, qui correspond � la frame de la fin de la ligne temporelle (c'est-�-dire la frame pour laquelle la valeur courante est 1).

Voir aussi setEndFrame() et setFrameRange().

void QTimeLine::finished () [signal]

Ce signal est �mis quand QTimeLine se termine (c'est-�-dire quand elle atteint la fin de la ligne temporelle) et ne boucle pas.

void QTimeLine::frameChanged ( int frame ) [signal]

QTimeLine �met ce signal � intervalle r�gulier lorsqu'elle se trouve dans l'�tat Running, mais seulement si la frame courante change. frame est le num�ro de la frame courante.

Voir aussi setFrameRange() et updateInterval.

int QTimeLine::frameForTime ( int msec ) const

Retourne la frame correspondant au temps msec. Cette valeur est calcul�e en utilisant une interpolation lin�aire entre la frame de d�but et la frame de fin, bas�e sur la valeur retourn�e par valueForTime().

Voir aussi valueForTime() et setFrameRange().

void QTimeLine::resume () [slot]

Reprend la ligne temporelle � partir du temps courant. QTimeLine retournera dans l'�tat Running et, une fois qu'elle entre dans la boucle d'�v�nements, elle mettra � jour son temps courant, sa frame et sa valeur � intervalles r�guliers.

Contrairement � start(), cette fonction ne red�marre pas la ligne temporelle avant de reprendre.

Voir aussi start(), updateInterval(), frameChanged() et valueChanged().

void QTimeLine::setEndFrame ( int frame )

D�finit la frame de fin, la frame correspondant � la fin de la ligne temporelle (c'est-�-dire la frame pour laquelle la valeur courante est 1), � frame.

Voir endFrame(), startFrame() et setFrameRange().

void QTimeLine::setFrameRange ( int startFrame, int endFrame )

D�finit le compteur de frames de la ligne temporelle pour commencer � startFrame et terminer � endFrame. Pour chaque valeur de temps, QTimeLine trouvera la frame correspondante quand vous appelez currentFrame() ou frameForTime() par interpolation, en utilisant la valeur de retour de valueForTime().

Dans l'�tat Running, QTimeLine �met �galement le signal frameChanged() quand la frame change.

Voir aussi startFrame(), endFrame(), start() et currentFrame().

void QTimeLine::setPaused ( bool paused ) [slot]

Si paused est vrai, la ligne temporelle est mise en pause, mettant QTimeLine dans l'�tat Paused. Aucune mise � jour ne sera signal�e jusqu'� ce que start() ou setPaused(false) soit appel�. Si paused est faux, la ligne temporelle reprend et continue de l� o� elle s'�tait arr�t�e.

Voir aussi state() et start().

void QTimeLine::setStartFrame ( int frame )

D�finit la frame du d�but, la frame correspondant au d�but de la ligne temporelle (c'est-�-dire la frame pour laquelle la valeur courante est 0) � frame.

Voir aussi startFrame(), endFrame() et setFrameRange().

void QTimeLine::start () [slot]

D�marre la ligne temporelle. QTimeLine entrera dans l'�tat Running et, une fois qu'elle entre dans la boucle d'�v�nements, elle mettra � jour son temps courant, sa frame et sa valeur � intervalles r�guliers. L'intervalle par d�faut est de 40 ms (soit 25 fois par seconde). Vous pouvez changer l'intervalle de mise � jour en appelant setUpdateInterval().

La ligne temporelle d�marrera de la position 0 ou de la fin, si elle va dans le sens inverse. Si vous voulez reprendre une ligne temporelle arr�t�e sans red�marrer, vous pouvez appeler resume() � la place.

Voir aussi resume(), updateInterval(), frameChanged() et valueChanged().

int QTimeLine::startFrame () const

Retourne la frame du d�but, la frame correspondant au d�but de la ligne temporelle (c'est-�-dire la frame pour laquelle la valeur courante est 0).

Voir aussi setStartFrame() et setFrameRange().

State QTimeLine::state () const

Retourne l'�tat de la ligne temporelle.

Voir aussi start(), setPaused() et stop().

void QTimeLine::stateChanged ( QTimeLine::State newState ) [signal]

Ce signal est �mis quand l'�tat de QTimeLine change. Le nouvel �tat est newState.

void QTimeLine::stop () [slot]

Arr�te la ligne temporelle, faisant entrer QTimeLine dans l'�tat NotRunning.

Voir aussi start().

void QTimeLine::timerEvent ( QTimerEvent * event ) [virtual protected]

R�impl�mentation de QObject::timerEvent().

void QTimeLine::toggleDirection () [slot]

Inverse la direction de la ligne temporelle. Si la direction �tait en avant, elle devient en arri�re, et vice versa.

Voir aussi setDirection().

void QTimeLine::valueChanged ( qreal value ) [signal]

QTimeLine �met ce signal � intervalle r�gulier lorsqu'elle est dans l'�tat Running, mais seulement si la valeur courante change. value est la valeur courante, un nombre entre 0.0 et 1.0.

Voir aussi setDuration(), valueForTime() et updateInterval.

qreal QTimeLine::valueForTime ( int msec ) const [virtual]

R�tourne la valeur de la ligne temporelle pour le temps msec. La valeur retourn�e, qui d�pend de la forme de la courbe, est toujours entre 0 et 1. Si msec est 0, l'impl�mentation par d�faut retourne toujours 0.

R�impl�mentez cette fonction pour fournir une forme de la courbe personnalis�e � votre ligne temporelle.

Voir aussi CurveShape et frameForTime().

Remerciements

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

Publicit�

Best Of

Actualit�s les plus lues

Semaine
Mois
Ann�e
  1. � Quelque chose ne va vraiment pas avec les d�veloppeurs "modernes" �, un d�veloppeur � "l'ancienne" critique la multiplication des biblioth�ques 82
  2. Apercevoir la troisi�me dimension ou l'utilisation multithread�e d'OpenGL dans Qt, un article des Qt Quarterly traduit par Guillaume Belz 0
  3. Les d�veloppeurs ignorent-ils trop les failles d�couvertes dans leur code ? Prenez-vous en compte les remarques des autres ? 17
  4. BlackBerry 10 : premi�res images du prochain OS de RIM qui devrait int�grer des widgets et des tuiles inspir�es de Windows Phone 0
  5. Quelles nouveaut�s de C++11 Visual C++ doit-il rapidement int�grer ? Donnez-nous votre avis 10
  6. Adieu qmake, bienvenue qbs : Qt Building Suite, un outil d�claratif et extensible pour la compilation de projets Qt 17
  7. 2017 : un quinquennat pour une nouvelle version du C++ ? Possible, selon Herb Sutter 6
Page suivante

Le blog Digia au hasard

Logo

Cr�er des applications avec un style Metro avec Qt, exemples en QML et C++, un article de Digia Qt traduit par Thibaut Cuvelier

Le blog Digia est l'endroit privil�gi� pour la communication sur l'�dition commerciale de Qt, o� des r�ponses publiques sont apport�es aux questions les plus pos�es au support. Lire l'article.

Communaut�

Ressources

Liens utiles

Contact

  • Vous souhaitez rejoindre la r�daction ou proposer un tutoriel, une traduction, une question... ? Postez dans le forum Contribuez ou contactez-nous par MP ou par email (voir en bas de page).

Qt dans le magazine

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.7
Copyright © 2012 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 ? Un bug ? 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 !
 
 
 
 
Partenaires

H�bergement Web