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.