QGraphicsItemAnimation Class
La clase QGraphicsItemAnimation proporciona soporte de animación simple para QGraphicsItem. Más...
| Cabecera: | #include <QGraphicsItemAnimation> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Hereda: | QObject |
| Status: | Obsoleto |
Esta clase está obsoleta. Desaconsejamos su uso en código nuevo.
Funciones Públicas
| 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 |
Ranuras Públicas
| void | setStep(qreal step) |
Funciones protegidas
| virtual void | afterAnimationStep(qreal step) |
| virtual void | beforeAnimationStep(qreal step) |
Descripción Detallada
La clase QGraphicsItemAnimation anima un QGraphicsItem. Puede programar cambios en la matriz de transformación del elemento en pasos especificados. La clase QGraphicsItemAnimation tiene un valor de paso actual. Cuando este valor cambia se realizan las transformaciones programadas en ese paso. El paso actual de la animación se establece con la función setStep().
QGraphicsItemAnimation hará una interpolación lineal simple entre los cambios programados adyacentes más cercanos para calcular la matriz. Por ejemplo, si estableces la posición de un elemento en los valores 0.0 y 1.0, la animación mostrará el elemento moviéndose en línea recta entre estas posiciones. Lo mismo ocurre con la escala y la rotación.
Es habitual utilizar la clase con un QTimeLine. La señal valueChanged() de la línea de tiempo se conecta entonces a la ranura setStep(). Por ejemplo, puede configurar un elemento para la rotación llamando a setRotationAt() para diferentes valores de paso. La línea de tiempo de la animación se configura con la función setTimeLine().
A continuación se muestra un ejemplo de animación con una línea de tiempo:
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();
Observe que los pasos están comprendidos entre 0.0 y 1.0. Puede ser necesario utilizar setUpdateInterval(). El intervalo de actualización por defecto es de 40 ms. Una transformación programada no puede eliminarse una vez establecida, por lo que no se recomienda programar varias transformaciones del mismo tipo (por ejemplo, rotaciones) en el mismo paso.
Véase también QTimeLine y Graphics View Framework.
Documentación de las funciones miembro
QGraphicsItemAnimation::QGraphicsItemAnimation(QObject *parent = nullptr)
Construye un objeto de animación con la dirección parent.
[virtual noexcept] QGraphicsItemAnimation::~QGraphicsItemAnimation()
Destruye el objeto de animación.
[virtual protected] void QGraphicsItemAnimation::afterAnimationStep(qreal step)
Este método está pensado para ser sobrescrito en subclases que necesiten ejecutar código adicional después de que se haya producido un nuevo paso. La animación step se proporciona para su uso en los casos en que la acción depende de su valor.
[virtual protected] void QGraphicsItemAnimation::beforeAnimationStep(qreal step)
Este método está pensado para ser sobrescrito por subclases que necesiten ejecutar código adicional antes de que se produzca un nuevo paso. La animación step se proporciona para su uso en los casos en que la acción depende de su valor.
void QGraphicsItemAnimation::clear()
Borra las transformaciones programadas utilizadas para la animación, pero conserva el elemento y la línea de tiempo.
qreal QGraphicsItemAnimation::horizontalScaleAt(qreal step) const
Devuelve la escala horizontal del elemento en el valor step especificado.
Véase también setScaleAt().
qreal QGraphicsItemAnimation::horizontalShearAt(qreal step) const
Devuelve el cizallamiento horizontal del elemento en el valor step especificado.
Véase también setShearAt().
QGraphicsItem *QGraphicsItemAnimation::item() const
Devuelve el elemento sobre el que actúa el objeto de animación.
Véase también setItem().
QPointF QGraphicsItemAnimation::posAt(qreal step) const
Devuelve la posición del elemento en el valor step dado.
Véase también setPosAt().
QList<std::pair<qreal, QPointF>> QGraphicsItemAnimation::posList() const
Devuelve todas las posiciones insertadas explícitamente.
Véase también posAt() y setPosAt().
qreal QGraphicsItemAnimation::rotationAt(qreal step) const
Devuelve el ángulo con el que gira el elemento en el valor especificado step.
Véase también setRotationAt().
QList<std::pair<qreal, qreal>> QGraphicsItemAnimation::rotationList() const
Devuelve todas las rotaciones insertadas explícitamente.
Véase también rotationAt() y setRotationAt().
QList<std::pair<qreal, QPointF>> QGraphicsItemAnimation::scaleList() const
Devuelve todas las escalas insertadas explícitamente.
Véase también verticalScaleAt(), horizontalScaleAt() y setScaleAt().
void QGraphicsItemAnimation::setItem(QGraphicsItem *item)
Establece el item especificado que se utilizará en la animación.
Véase también item().
void QGraphicsItemAnimation::setPosAt(qreal step, const QPointF &point)
Establece la posición del elemento en el valor step dado al point especificado.
Véase también posAt().
void QGraphicsItemAnimation::setRotationAt(qreal step, qreal angle)
Establece la rotación del elemento en el valor step dado al angle especificado.
Véase también rotationAt().
void QGraphicsItemAnimation::setScaleAt(qreal step, qreal sx, qreal sy)
Establece la escala del elemento en el valor dado step utilizando los factores de escala horizontal y vertical especificados por sx y sy.
Véase también verticalScaleAt() y horizontalScaleAt().
void QGraphicsItemAnimation::setShearAt(qreal step, qreal sh, qreal sv)
Establece el cizallamiento del elemento en el valor dado step utilizando los factores de cizallamiento horizontal y vertical especificados por sh y sv.
Véase también verticalShearAt() y horizontalShearAt().
[slot] void QGraphicsItemAnimation::setStep(qreal step)
Establece el valor actual de step para la animación, haciendo que se realicen las transformaciones programadas en este paso.
void QGraphicsItemAnimation::setTimeLine(QTimeLine *timeLine)
Establece el objeto de línea de tiempo utilizado para controlar la velocidad de la animación en el timeLine especificado.
Véase también timeLine().
void QGraphicsItemAnimation::setTranslationAt(qreal step, qreal dx, qreal dy)
Establece la traslación del elemento en el valor dado step utilizando las coordenadas horizontales y verticales especificadas por dx y dy.
Véase también xTranslationAt() y yTranslationAt().
QList<std::pair<qreal, QPointF>> QGraphicsItemAnimation::shearList() const
Devuelve todas las tijeras insertadas explícitamente.
Véase también verticalShearAt(), horizontalShearAt() y setShearAt().
QTimeLine *QGraphicsItemAnimation::timeLine() const
Devuelve el objeto de línea de tiempo utilizado para controlar la velocidad a la que se produce la animación.
Véase también setTimeLine().
QTransform QGraphicsItemAnimation::transformAt(qreal step) const
Devuelve la transformación utilizada para el elemento en el valor step especificado.
QList<std::pair<qreal, QPointF>> QGraphicsItemAnimation::translationList() const
Devuelve todas las traducciones insertadas explícitamente.
Véase también xTranslationAt(), yTranslationAt() y setTranslationAt().
qreal QGraphicsItemAnimation::verticalScaleAt(qreal step) const
Devuelve la escala vertical del elemento en el valor step especificado.
Véase también setScaleAt().
qreal QGraphicsItemAnimation::verticalShearAt(qreal step) const
Devuelve el cizallamiento vertical del elemento en el valor step especificado.
Véase también setShearAt().
qreal QGraphicsItemAnimation::xTranslationAt(qreal step) const
Devuelve la traslación horizontal del elemento en el valor step especificado.
Véase también setTranslationAt().
qreal QGraphicsItemAnimation::yTranslationAt(qreal step) const
Devuelve la traslación vertical del elemento en el valor step especificado.
Véase también 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.