Sur cette page

QGraphicsItemAnimation Class

La classe `QGraphicsItemAnimation` offre une prise en charge simple des animations pour QGraphicsItem. En savoir plus...

En-tête : #include <QGraphicsItemAnimation>
CMake : find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake : QT += widgets
Hérite de : QObject
Statut : Obsolète

Cette classe est obsolète. Nous déconseillons fortement de l'utiliser dans du nouveau code.

Fonctions publiques

QGraphicsItemAnimation(QObject *parent = nullptr)
virtual ~QGraphicsItemAnimation()
void clear()
qreal horizontalScaleAt(qreal step) const
qreal horizontalShearAt(qreal step) const
QGraphicsItem *item() const
QPointF posAt(qreal step) const
QList<std::pair<qreal, QPointF>> posList() const
qreal rotationAt(qreal step) const
QList<std::pair<qreal, qreal>> rotationList() const
QList<std::pair<qreal, QPointF>> scaleList() const
void setItem(QGraphicsItem *item)
void setPosAt(qreal step, const QPointF &point)
void setRotationAt(qreal step, qreal angle)
void setScaleAt(qreal step, qreal sx, qreal sy)
void setShearAt(qreal step, qreal sh, qreal sv)
void setTimeLine(QTimeLine *timeLine)
void setTranslationAt(qreal step, qreal dx, qreal dy)
QList<std::pair<qreal, QPointF>> shearList() const
QTimeLine *timeLine() const
QTransform transformAt(qreal step) const
QList<std::pair<qreal, QPointF>> translationList() const
qreal verticalScaleAt(qreal step) const
qreal verticalShearAt(qreal step) const
qreal xTranslationAt(qreal step) const
qreal yTranslationAt(qreal step) const

Slots publics

void setStep(qreal step)

Fonctions protégées

virtual void afterAnimationStep(qreal step)
virtual void beforeAnimationStep(qreal step)

Description détaillée

La classe QGraphicsItemAnimation anime un élément graphique ( QGraphicsItem). Vous pouvez planifier des modifications de la matrice de transformation de l’élément à des étapes spécifiées. La classe QGraphicsItemAnimation dispose d’une valeur d’étape actuelle. Lorsque cette valeur change, les transformations planifiées à cette étape sont exécutées. L’étape actuelle de l’animation est définie à l’aide de la fonction setStep().

QGraphicsItemAnimation effectue une simple interpolation linéaire entre les modifications planifiées les plus proches pour calculer la matrice. Par exemple, si vous définissez la position d’un élément aux valeurs 0,0 et 1,0, l’animation montrera l’élément se déplaçant en ligne droite entre ces positions. Il en va de même pour la mise à l’échelle et la rotation.

Il est courant d’utiliser cette classe avec une QTimeLine. Le signal valueChanged() de la timeline est alors connecté au slot setStep(). Par exemple, vous pouvez configurer la rotation d’un élément en appelant setRotationAt() avec différentes valeurs d’étape. La timeline de l’animation est définie à l’aide de la fonction setTimeLine().

Voici un exemple d’animation avec une timeline :

QGraphicsItem *ball = new QGraphicsEllipseItem(0, 0, 20, 20);

QTimeLine *timer = new QTimeLine(5000);
timer->setFrameRange(0, 100);

QGraphicsItemAnimation *animation = new QGraphicsItemAnimation;
animation->setItem(ball);
animation->setTimeLine(timer);

for (int i = 0; i < 200; ++i)
    animation->setPosAt(i / 200.0, QPointF(i, i));

QGraphicsScene *scene = new QGraphicsScene;
scene->setSceneRect(0, 0, 250, 250);
scene->addItem(ball);

QGraphicsView *view = new QGraphicsView(scene);
view->show();

timer->start();

Notez que les pas sont compris entre 0,0 et 1,0. Il peut être nécessaire d’utiliser setUpdateInterval(). L’intervalle de mise à jour par défaut est de 40 ms. Une transformation planifiée ne peut pas être supprimée une fois définie ; il n’est donc pas recommandé de planifier plusieurs transformations du même type (par exemple, des rotations) au même pas.

Voir également ` QTimeLine ` et « Graphics View Framework ».

Documentation des fonctions membres

QGraphicsItemAnimation::QGraphicsItemAnimation(QObject *parent = nullptr)

Crée un objet d'animation à partir de l'parent on fournie.

[virtual noexcept] QGraphicsItemAnimation::~QGraphicsItemAnimation()

Supprime l'objet d'animation.

[virtual protected] void QGraphicsItemAnimation::afterAnimationStep(qreal step)

Cette méthode est destinée à être redéfinie dans les sous-classes qui doivent exécuter du code supplémentaire après qu’une nouvelle étape a eu lieu. L’ step d’animation est fournie pour être utilisée dans les cas où l’action dépend de sa valeur.

[virtual protected] void QGraphicsItemAnimation::beforeAnimationStep(qreal step)

Cette méthode est destinée à être redéfinie par les sous-classes qui ont besoin d'exécuter du code supplémentaire avant le lancement d'une nouvelle étape. L'step 'animation est fournie pour être utilisée dans les cas où l'action dépend de sa valeur.

void QGraphicsItemAnimation::clear()

Supprime les transformations programmées utilisées pour l'animation, tout en conservant l'élément et la timeline.

qreal QGraphicsItemAnimation::horizontalScaleAt(qreal step) const

Renvoie l'échelle horizontale de l'élément correspondant à la valeur spécifiée de « step ».

Voir aussi setScaleAt().

qreal QGraphicsItemAnimation::horizontalShearAt(qreal step) const

Renvoie le cisaillement horizontal de l'élément correspondant à la valeur « step » indiquée.

Voir aussi setShearAt().

QGraphicsItem *QGraphicsItemAnimation::item() const

Renvoie l'élément sur lequel agit l'objet d'animation.

Voir aussi setItem().

QPointF QGraphicsItemAnimation::posAt(qreal step) const

Renvoie la position de l'élément correspondant à la valeur « step » indiquée.

Voir aussi setPosAt().

QList<std::pair<qreal, QPointF>> QGraphicsItemAnimation::posList() const

Renvoie toutes les positions insérées explicitement.

Voir également posAt() et setPosAt().

qreal QGraphicsItemAnimation::rotationAt(qreal step) const

Renvoie l'angle de rotation de l'élément à la valeur spécifiée de la propriété « step ».

Voir également setRotationAt().

QList<std::pair<qreal, qreal>> QGraphicsItemAnimation::rotationList() const

Renvoie toutes les rotations explicitement insérées.

Voir également rotationAt() et setRotationAt().

QList<std::pair<qreal, QPointF>> QGraphicsItemAnimation::scaleList() const

Renvoie toutes les échelles insérées explicitement.

Voir également verticalScaleAt(), horizontalScaleAt() et setScaleAt().

void QGraphicsItemAnimation::setItem(QGraphicsItem *item)

Définit l'item e spécifiée à utiliser dans l'animation.

Voir aussi item().

void QGraphicsItemAnimation::setPosAt(qreal step, const QPointF &point)

Définit la position de l'élément à la valeur « step » indiquée sur la valeur « point » spécifiée.

Voir également posAt().

void QGraphicsItemAnimation::setRotationAt(qreal step, qreal angle)

Définit la rotation de l'élément situé à la valeur « step » indiquée sur la valeur « angle » spécifiée.

Voir également rotationAt().

void QGraphicsItemAnimation::setScaleAt(qreal step, qreal sx, qreal sy)

Définit l'échelle de l'élément à la valeur d'step indiquée, en utilisant les facteurs d'échelle horizontaux et verticaux spécifiés par sx et sy.

Voir également verticalScaleAt() et horizontalScaleAt().

void QGraphicsItemAnimation::setShearAt(qreal step, qreal sh, qreal sv)

Définit la déformation de l'élément selon la valeur fournie par step, en utilisant les facteurs de déformation horizontaux et verticaux spécifiés par sh et sv.

Voir également verticalShearAt() et horizontalShearAt().

[slot] void QGraphicsItemAnimation::setStep(qreal step)

Définit la valeur actuelle de ` step ` pour l'animation, ce qui entraîne l'exécution des transformations prévues à cette étape.

void QGraphicsItemAnimation::setTimeLine(QTimeLine *timeLine)

Définit l'objet « timeline » utilisé pour contrôler la vitesse de l'animation sur la valeur spécifiée timeLine.

Voir également timeLine().

void QGraphicsItemAnimation::setTranslationAt(qreal step, qreal dx, qreal dy)

Définit le décalage de l'élément à la valeur d'step indiquée, à l'aide des coordonnées horizontales et verticales spécifiées par dx et dy.

Voir également xTranslationAt() et yTranslationAt().

QList<std::pair<qreal, QPointF>> QGraphicsItemAnimation::shearList() const

Renvoie tous les décalages insérés explicitement.

Voir également verticalShearAt(), horizontalShearAt() et setShearAt().

QTimeLine *QGraphicsItemAnimation::timeLine() const

Renvoie l'objet « timeline » utilisé pour contrôler la vitesse à laquelle l'animation se déroule.

Voir également setTimeLine().

QTransform QGraphicsItemAnimation::transformAt(qreal step) const

Renvoie la transformation utilisée pour l'élément à la valeur d'step spécifiée.

QList<std::pair<qreal, QPointF>> QGraphicsItemAnimation::translationList() const

Renvoie toutes les traductions explicitement insérées.

Voir également xTranslationAt(), yTranslationAt() et setTranslationAt().

qreal QGraphicsItemAnimation::verticalScaleAt(qreal step) const

Renvoie l'échelle verticale de l'élément correspondant à la valeur spécifiée de « step ».

Voir aussi setScaleAt().

qreal QGraphicsItemAnimation::verticalShearAt(qreal step) const

Renvoie le cisaillement vertical de l'élément correspondant à la valeur spécifiée de « step ».

Voir aussi setShearAt().

qreal QGraphicsItemAnimation::xTranslationAt(qreal step) const

Renvoie la translation horizontale de l'élément à la valeur d'step spécifiée.

Voir aussi setTranslationAt().

qreal QGraphicsItemAnimation::yTranslationAt(qreal step) const

Renvoie la translation verticale de l'élément à la valeur d'step spécifiée.

Voir aussi setTranslationAt().

© 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.