QAbstractAnimation Class
La classe QAbstractAnimation est la base de toutes les animations. Plus d'informations...
| En-tête : | #include <QAbstractAnimation> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
| Hérite : | QObject |
| Hérités par : |
- Liste de tous les membres, y compris les membres hérités
- QAbstractAnimation fait partie de Animation Framework.
Types publics
| enum | DeletionPolicy { KeepWhenStopped, DeleteWhenStopped } |
| enum | Direction { Forward, Backward } |
| enum | State { Stopped, Paused, Running } |
Propriétés
|
Fonctions publiques
| QAbstractAnimation(QObject *parent = nullptr) | |
| virtual | ~QAbstractAnimation() |
| QBindable<int> | bindableCurrentLoop() const |
| QBindable<int> | bindableCurrentTime() |
| QBindable<QAbstractAnimation::Direction> | bindableDirection() |
| QBindable<int> | bindableLoopCount() |
| QBindable<QAbstractAnimation::State> | bindableState() const |
| int | currentLoop() const |
| int | currentLoopTime() const |
| int | currentTime() const |
| QAbstractAnimation::Direction | direction() const |
| virtual int | duration() const = 0 |
| QAnimationGroup * | group() const |
| int | loopCount() const |
| void | setDirection(QAbstractAnimation::Direction direction) |
| void | setLoopCount(int loopCount) |
| QAbstractAnimation::State | state() const |
| int | totalDuration() const |
Emplacements publics
| void | pause() |
| void | resume() |
| void | setCurrentTime(int msecs) |
| void | setPaused(bool paused) |
| void | start(QAbstractAnimation::DeletionPolicy policy = KeepWhenStopped) |
| void | stop() |
Signaux
| void | currentLoopChanged(int currentLoop) |
| void | directionChanged(QAbstractAnimation::Direction newDirection) |
| void | finished() |
| void | stateChanged(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) |
Fonctions protégées
| virtual void | updateCurrentTime(int currentTime) = 0 |
| virtual void | updateDirection(QAbstractAnimation::Direction direction) |
| virtual void | updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) |
Fonctions protégées réimplémentées
| virtual bool | event(QEvent *event) override |
Description détaillée
Cette classe définit les fonctions partagées par toutes les animations. En héritant de cette classe, vous pouvez créer des animations personnalisées qui s'intègrent au reste du cadre d'animation.
La progression d'une animation est donnée par son temps actuel (currentLoopTime()), qui est mesuré en millisecondes entre le début de l'animation (0) et sa fin (duration()). Cette valeur est mise à jour automatiquement pendant le déroulement de l'animation. Elle peut également être définie directement à l'aide de setCurrentTime().
À tout moment, une animation se trouve dans l'un des trois états suivants : Running, Stopped, ou Paused- tel que défini par l'enum State. L'état actuel peut être modifié en appelant start(), stop(), pause() ou resume(). Une animation réinitialise toujours son current time lorsqu'elle est lancée. Si elle est interrompue, elle se poursuivra à la même heure lorsqu'elle sera reprise. Lorsqu'une animation est arrêtée, elle ne peut pas être reprise, mais elle conserve l'heure actuelle (jusqu'à ce qu'elle soit redémarrée). QAbstractAnimation émet stateChanged() chaque fois que son état change.
Une animation peut être bouclée un nombre illimité de fois en définissant la propriété loopCount. Lorsque l'heure actuelle d'une animation atteint sa valeur duration(), elle réinitialise l'heure actuelle et continue à tourner. Un nombre de boucles de 1 (valeur par défaut) signifie que l'animation ne sera exécutée qu'une seule fois. Notez qu'une durée de -1 signifie que l'animation s'exécutera jusqu'à ce qu'elle soit arrêtée ; le temps courant augmentera indéfiniment. Lorsque le temps courant est égal à duration() et que l'animation est dans sa boucle finale, l'état Stopped est activé et le signal finished() est émis.
QAbstractAnimation fournit des fonctions virtuelles pures utilisées par les sous-classes pour suivre la progression de l'animation : duration() et updateCurrentTime(). La fonction duration() vous permet d'indiquer la durée de l'animation (comme nous l'avons vu plus haut). Le cadre d'animation appelle updateCurrentTime() lorsque l'heure actuelle a changé. En réimplémentant cette fonction, vous pouvez suivre la progression de l'animation. Notez que ni l'intervalle entre les appels ni le nombre d'appels à cette fonction ne sont définis ; cependant, il s'agit normalement de 60 mises à jour par seconde.
En réimplémentant updateState(), vous pouvez suivre les changements d'état de l'animation, ce qui est particulièrement utile pour les animations qui ne sont pas pilotées par le temps.
Voir aussi QVariantAnimation, QPropertyAnimation, QAnimationGroup, et The Animation Framework.
Documentation sur les types de membres
enum QAbstractAnimation::DeletionPolicy
| Constante | Valeur | Description de l'animation |
|---|---|---|
QAbstractAnimation::KeepWhenStopped | 0 | L'animation n'est pas supprimée lorsqu'elle est arrêtée. |
QAbstractAnimation::DeleteWhenStopped | 1 | L'animation est automatiquement supprimée lorsqu'elle est arrêtée. |
enum QAbstractAnimation::Direction
Cette énumération décrit la direction de l'animation dans l'état Running.
| Constante | Valeur | Description |
|---|---|---|
QAbstractAnimation::Forward | 0 | Le temps actuel de l'animation augmente avec le temps (c'est-à-dire qu'il s'éloigne de 0 et se rapproche de la fin / durée). |
QAbstractAnimation::Backward | 1 | Le temps actuel de l'animation diminue avec le temps (c'est-à-dire qu'il s'éloigne de la fin / durée et se rapproche de 0). |
Voir également direction.
enum QAbstractAnimation::State
Cette énumération décrit l'état de l'animation.
| Constante | Valeur | Description de l'état de l'animation |
|---|---|---|
QAbstractAnimation::Stopped | 0 | L'animation n'est pas en cours d'exécution. Il s'agit de l'état initial de QAbstractAnimation et de l'état dans lequel QAbstractAnimation se trouve lorsqu'il est terminé. L'heure actuelle reste inchangée jusqu'à ce que setCurrentTime() soit appelé ou que l'animation soit lancée en appelant start(). |
QAbstractAnimation::Paused | 1 | L'animation est en pause (c'est-à-dire qu'elle est temporairement suspendue). L'appel de resume() reprend l'activité de l'animation. |
QAbstractAnimation::Running | 2 | L'animation est en cours d'exécution. Pendant que le contrôle se trouve dans la boucle d'événements, QAbstractAnimation met à jour l'heure actuelle à intervalles réguliers, en appelant updateCurrentTime() le cas échéant. |
Voir également state() et stateChanged().
Documentation sur les propriétés
[bindable read-only] currentLoop : int
Remarque : cette propriété prend en charge les liens QProperty.
Cette propriété contient la boucle courante de l'animation
Cette propriété décrit la boucle courante de l'animation. Par défaut, le nombre de boucles de l'animation est de 1, et la boucle courante sera donc toujours 0. Si le nombre de boucles est de 2 et que l'animation dépasse sa durée, elle reviendra automatiquement en arrière et redémarrera au temps courant 0, puis à la boucle courante 1, et ainsi de suite.
Lorsque la boucle en cours change, QAbstractAnimation émet le signal currentLoopChanged().
Fonctions d'accès :
| int | currentLoop() const |
Signal Notificateur :
| void | currentLoopChanged(int currentLoop) |
[bindable] currentTime : int
Remarque : Cette propriété prend en charge les liens QProperty.
Cette propriété indique l'heure actuelle et la progression de l'animation
Cette propriété décrit l'heure actuelle de l'animation. Vous pouvez modifier l'heure actuelle en appelant setCurrentTime(), ou vous pouvez appeler start() et laisser l'animation se dérouler, en réglant automatiquement l'heure actuelle au fur et à mesure de la progression de l'animation.
L'heure actuelle de l'animation commence à 0 et se termine à totalDuration().
Remarque : vous pouvez lier d'autres propriétés à currentTime, mais il n'est pas recommandé de le faire. Au fur et à mesure que l'animation progresse, l'heure actuelle est mise à jour automatiquement, ce qui annule ses liaisons.
Fonctions d'accès :
| int | currentTime() const |
| void | setCurrentTime(int msecs) |
Voir également loopCount et currentLoopTime().
[bindable] direction : Direction
Remarque : Cette propriété prend en charge les liens QProperty.
Cette propriété définit la direction de l'animation lorsqu'elle se trouve dans l'état Running.
Cette direction indique si le temps se déplace de 0 vers la durée de l'animation, ou de la valeur de la durée vers 0 après que start() a été appelé.
Par défaut, cette propriété est définie sur Forward.
Fonctions d'accès :
| QAbstractAnimation::Direction | direction() const |
| void | setDirection(QAbstractAnimation::Direction direction) |
Notifier signal :
| void | directionChanged(QAbstractAnimation::Direction newDirection) |
[read-only] duration : int
Cette propriété indique la durée de l'animation.
Si la durée est égale à -1, cela signifie que la durée est indéfinie. Dans ce cas, loopCount est ignoré.
Fonctions d'accès :
| virtual int | duration() const = 0 |
[bindable] loopCount : int
Remarque : Cette propriété prend en charge les liens QProperty.
Cette propriété contient le nombre de boucles de l'animation
Cette propriété décrit le nombre de boucles de l'animation sous la forme d'un nombre entier. Par défaut, cette valeur est de 1, ce qui indique que l'animation doit être exécutée une seule fois, puis s'arrêter. En modifiant cette valeur, vous pouvez laisser l'animation tourner en boucle plusieurs fois. Avec une valeur de 0, l'animation ne sera pas exécutée du tout, et avec une valeur de -1, l'animation sera exécutée en boucle pour toujours jusqu'à ce qu'elle soit arrêtée. Il n'est pas possible de faire tourner en boucle une animation dont la durée n'est pas définie. Elle ne s'exécutera qu'une seule fois.
Fonctions d'accès :
| int | loopCount() const |
| void | setLoopCount(int loopCount) |
[bindable read-only] state : State
Remarque : cette propriété prend en charge les liens QProperty.
état de l'animation.
Cette propriété décrit l'état actuel de l'animation. Lorsque l'état de l'animation change, QAbstractAnimation émet le signal stateChanged().
Remarque : les mises à jour de l'état peuvent entraîner des mises à jour de la propriété currentTime, qui, à son tour, peut annuler ses liaisons. Soyez donc prudent lorsque vous définissez des liaisons avec la propriété currentTime, si vous vous attendez à ce que l'état de l'animation change.
Fonctions d'accès :
| QAbstractAnimation::State | state() const |
Signal Notificateur :
| void | stateChanged(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) |
Fonction membre Documentation
QAbstractAnimation::QAbstractAnimation(QObject *parent = nullptr)
Construit la classe de base QAbstractAnimation et transmet parent au constructeur de QObject.
Voir aussi QVariantAnimation et QAnimationGroup.
[virtual noexcept] QAbstractAnimation::~QAbstractAnimation()
Arrête l'animation si elle est en cours, puis détruit le site QAbstractAnimation. Si l'animation fait partie d'un site QAnimationGroup, elle est automatiquement supprimée avant d'être détruite.
[signal] void QAbstractAnimation::currentLoopChanged(int currentLoop)
QAbstractAnimation émet ce signal chaque fois que la boucle en cours change. currentLoop est la boucle en cours.
Note : Signal de notification pour la propriété currentLoop.
Voir aussi currentLoop() et loopCount().
int QAbstractAnimation::currentLoopTime() const
Renvoie l'heure actuelle à l'intérieur de la boucle en cours. Il peut aller de 0 à duration().
Voir aussi duration() et currentTime.
[signal] void QAbstractAnimation::directionChanged(QAbstractAnimation::Direction newDirection)
QAbstractAnimation émet ce signal lorsque la direction a été modifiée. newDirection est la nouvelle direction.
Note : Signal de notification pour la propriété direction.
Voir aussi direction.
[pure virtual] int QAbstractAnimation::duration() const
Cette fonction purement virtuelle renvoie la durée de l'animation et définit pendant combien de temps QAbstractAnimation doit mettre à jour l'heure actuelle. Cette durée est locale et n'inclut pas le nombre de boucles.
Une valeur de retour de -1 indique que l'animation n'a pas de durée définie ; l'animation doit fonctionner indéfiniment jusqu'à ce qu'elle soit arrêtée. C'est utile pour les animations qui ne sont pas pilotées par le temps, ou pour lesquelles vous ne pouvez pas facilement prévoir la durée (par exemple, la lecture audio pilotée par des événements dans un jeu).
Si l'animation est une QAnimationGroup parallèle, la durée sera la durée la plus longue de toutes ses animations. Si l'animation est séquentielle ( QAnimationGroup), la durée sera la somme des durées de toutes les animations.
Remarque : fonction Getter pour la propriété duration.
Voir également loopCount.
[override virtual protected] bool QAbstractAnimation::event(QEvent *event)
Réimplémente : QObject::event(QEvent *e).
[signal] void QAbstractAnimation::finished()
QAbstractAnimation émet ce signal lorsque l'animation s'est arrêtée et a atteint la fin.
Ce signal est émis après stateChanged().
Voir aussi stateChanged().
QAnimationGroup *QAbstractAnimation::group() const
Si cette animation fait partie d'un groupe QAnimationGroup, cette fonction renvoie un pointeur sur le groupe ; sinon, elle renvoie nullptr.
Voir aussi QAnimationGroup::addAnimation().
[slot] void QAbstractAnimation::pause()
Met l'animation en pause. Lorsque l'animation est mise en pause, state() renvoie Paused. La valeur de currentTime restera inchangée jusqu'à ce que resume() ou start() soit appelé. Si vous voulez continuer à partir de l'heure actuelle, appelez resume().
Voir également start(), state() et resume().
[slot] void QAbstractAnimation::resume()
Reprend l'animation après l'avoir interrompue. Lorsque l'animation est reprise, elle émet le signal stateChanged(). La propriété currentTime n'est pas modifiée.
Voir aussi start(), pause() et state().
[slot] void QAbstractAnimation::setPaused(bool paused)
Si paused est vrai, l'animation est mise en pause. Si paused est faux, l'animation reprend.
Voir aussi state(), pause() et resume().
[slot] void QAbstractAnimation::start(QAbstractAnimation::DeletionPolicy policy = KeepWhenStopped)
Démarre l'animation. L'argument policy indique si l'animation doit être supprimée ou non lorsqu'elle est terminée. Lorsque l'animation démarre, le signal stateChanged() est émis et state() renvoie Running. Lorsque le contrôle atteint la boucle d'événements, l'animation s'exécute d'elle-même, en appelant périodiquement updateCurrentTime() au fur et à mesure que l'animation progresse.
Si l'animation est actuellement arrêtée ou a déjà atteint la fin, l'appel à start() rembobine l'animation et la reprend depuis le début. Lorsque l'animation atteint la fin, elle s'arrête ou, si le niveau de la boucle est supérieur à 1, elle revient en arrière et reprend depuis le début.
Si l'animation est déjà en cours, cette fonction ne fait rien.
[signal] void QAbstractAnimation::stateChanged(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)
QAbstractAnimation émet ce signal lorsque l'état de l'animation est passé de oldState à newState. Ce signal est émis après l'appel de la fonction virtuelle updateState().
Note : Signal de notification pour la propriété state.
Voir également updateState().
[slot] void QAbstractAnimation::stop()
Arrête l'animation. Lorsque l'animation est arrêtée, elle émet le signal stateChanged() et state() renvoie Stopped. L'heure actuelle n'est pas modifiée.
Si l'animation s'arrête d'elle-même après avoir atteint la fin (c'est-à-dire, currentLoopTime() == duration() et currentLoop() > loopCount() - 1), le signal finished() est émis.
Voir également start() et state().
int QAbstractAnimation::totalDuration() const
Renvoie la durée totale et effective de l'animation, y compris le nombre de boucles.
Voir aussi duration() et currentTime.
[pure virtual protected] void QAbstractAnimation::updateCurrentTime(int currentTime)
Cette fonction purement virtuelle est appelée à chaque fois que l'animation currentTime change.
Voir aussi updateState().
[virtual protected] void QAbstractAnimation::updateDirection(QAbstractAnimation::Direction direction)
Cette fonction virtuelle est appelée par QAbstractAnimation lorsque la direction de l'animation est modifiée. L'argument direction est la nouvelle direction.
Voir aussi setDirection() et direction().
[virtual protected] void QAbstractAnimation::updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)
Cette fonction virtuelle est appelée par QAbstractAnimation lorsque l'état de l'animation passe de oldState à newState.
© 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.