Sur cette page

QGraphicsItemAnimation Class

La classe QGraphicsItemAnimation fournit un support d'animation simple pour QGraphicsItem. 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 : QObject
Statut : Déclassé

Cette classe est obsolète. Il est fortement déconseillé de l'utiliser dans un 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

Emplacements 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 QGraphicsItem. Vous pouvez programmer des modifications de la matrice de transformation de l'élément à des étapes précises. La classe QGraphicsItemAnimation possède une valeur d'étape courante. Lorsque cette valeur change, les transformations programmé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 changements programmés adjacents 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 habituel d'utiliser la classe avec un QTimeLine. Le signal valueChanged() de la ligne de temps est alors connecté à l'emplacement setStep(). Par exemple, vous pouvez configurer un élément pour la rotation en appelant setRotationAt() pour différentes valeurs de pas. La ligne de temps de l'animation est définie à l'aide de la fonction setTimeLine().

Vous trouverez ci-dessous un exemple d'animation avec une ligne de temps :

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 la fonction setUpdateInterval(). L'intervalle de mise à jour par défaut est de 40 ms. Une transformation planifiée ne peut pas être supprimée lorsqu'elle a été définie. Il n'est donc pas recommandé de planifier plusieurs transformations du même type (par exemple, des rotations) au cours de la même étape.

Voir également QTimeLine et Graphics View Framework.

Documentation des fonctions membres

QGraphicsItemAnimation::QGraphicsItemAnimation(QObject *parent = nullptr)

Construit un objet d'animation avec l'adresse parent.

[virtual noexcept] QGraphicsItemAnimation::~QGraphicsItemAnimation()

Détruit l'objet d'animation.

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

Cette méthode est destinée à être surchargée dans les sous-classes qui ont besoin d'exécuter du code supplémentaire après qu'une nouvelle étape a eu lieu. L'animation step est fournie 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 surchargée par les sous-classes qui ont besoin d'exécuter un code supplémentaire avant qu'une nouvelle étape n'ait lieu. L'animation step est fournie pour les cas où l'action dépend de sa valeur.

void QGraphicsItemAnimation::clear()

Efface les transformations programmées utilisées pour l'animation, mais conserve l'élément et la ligne de temps.

qreal QGraphicsItemAnimation::horizontalScaleAt(qreal step) const

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

Voir également setScaleAt().

qreal QGraphicsItemAnimation::horizontalShearAt(qreal step) const

Renvoie le cisaillement horizontal de l'élément à la valeur step spécifiée.

Voir également setShearAt().

QGraphicsItem *QGraphicsItemAnimation::item() const

Renvoie l'élément sur lequel l'objet d'animation opère.

Voir également setItem().

QPointF QGraphicsItemAnimation::posAt(qreal step) const

Renvoie la position de l'élément à la valeur step donnée.

Voir également setPosAt().

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

Renvoie toutes les positions insérées explicitement.

Voir aussi posAt() et setPosAt().

qreal QGraphicsItemAnimation::rotationAt(qreal step) const

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

Voir également setRotationAt().

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

Renvoie toutes les rotations insérées explicitement.

Voir aussi rotationAt() et setRotationAt().

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

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

Voir aussi verticalScaleAt(), horizontalScaleAt(), et setScaleAt().

void QGraphicsItemAnimation::setItem(QGraphicsItem *item)

Définit l'adresse item à 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 donnée à la valeur point spécifiée.

Voir aussi posAt().

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

Définit la rotation de l'élément à la valeur step donnée à la valeur angle spécifiée.

Voir aussi rotationAt().

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

Définit l'échelle de l'élément à la valeur step donnée en utilisant les facteurs d'échelle horizontale et verticale spécifiés par sx et sy.

Voir également verticalScaleAt() et horizontalScaleAt().

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

Définit le cisaillement de l'élément à la valeur donnée step en utilisant les facteurs de cisaillement 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 ligne de temps utilisé pour contrôler le taux d'animation à l'adresse timeLine spécifiée.

Voir également timeLine().

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

Définit la translation de l'élément à la valeur step donnée en utilisant les 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 toutes les cisailles explicitement insérées.

Voir aussi verticalShearAt(), horizontalShearAt(), et setShearAt().

QTimeLine *QGraphicsItemAnimation::timeLine() const

Renvoie l'objet ligne de temps utilisé pour contrôler la vitesse à laquelle l'animation se produit.

Voir également setTimeLine().

QTransform QGraphicsItemAnimation::transformAt(qreal step) const

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

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

Renvoie toutes les traductions explicitement insérées.

Voir aussi xTranslationAt(), yTranslationAt(), et setTranslationAt().

qreal QGraphicsItemAnimation::verticalScaleAt(qreal step) const

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

Voir également setScaleAt().

qreal QGraphicsItemAnimation::verticalShearAt(qreal step) const

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

Voir également setShearAt().

qreal QGraphicsItemAnimation::xTranslationAt(qreal step) const

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

Voir également setTranslationAt().

qreal QGraphicsItemAnimation::yTranslationAt(qreal step) const

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

Voir également 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.