En esta página

Animation QML Type

Es la base de todas las animaciones QML. Más...

Propiedades

Señales

Métodos

Descripción detallada

El tipo Animation no puede utilizarse directamente en un archivo QML. Existe para proporcionar un conjunto de propiedades y métodos comunes, disponibles en todos los demás tipos de animación que heredan de él. Si se intenta utilizar el tipo Animation directamente, se producirá un error.

Documentación de propiedades

alwaysRunToEnd : bool

Esta propiedad indica si la animación debe completarse cuando se detiene.

Si es true, la animación completará su iteración actual cuando sea detenida - ya sea estableciendo la propiedad running a false, o llamando al método stop(). El método complete() no se ve afectado por este valor.

Este comportamiento es más útil cuando la propiedad loops está establecida, ya que la animación terminará de reproducirse normalmente pero no se reiniciará.

Por defecto, la propiedad alwaysRunToEnd no está establecida.

Nota: alwaysRunToEnd no tiene efecto en animaciones en una Transición.

loops : int

Esta propiedad contiene el número de veces que la animación debe reproducirse.

Por defecto, loops es 1: la animación se reproducirá una vez y luego se detendrá.

Si se establece a Animation.Infinite, la animación se repetirá continuamente hasta que se detenga explícitamente - ya sea estableciendo la propiedad running a false, o llamando al método stop().

En el siguiente ejemplo, el rectángulo girará indefinidamente.

Rectangle {
    width: 100; height: 100; color: "green"
    RotationAnimation on rotation {
        loops: Animation.Infinite
        from: 0
        to: 360
    }
}

paused : bool

Esta propiedad indica si la animación está pausada.

La propiedad paused puede ser establecida para controlar declarativamente si una animación está pausada o no.

Las animaciones también pueden pausarse y reanudarse imperativamente desde JavaScript utilizando los métodos pause() y resume().

Por defecto, las animaciones no se pausan.

running : bool

Esta propiedad indica si la animación se está ejecutando actualmente.

La propiedad running puede ser establecida para controlar declarativamente si una animación se está ejecutando o no. El siguiente ejemplo animará un rectángulo siempre que se pulse MouseArea.

Rectangle {
    width: 100; height: 100
    NumberAnimation on x {
        running: myMouse.pressed
        from: 0; to: 100
    }
    MouseArea { id: myMouse }
}

Del mismo modo, la propiedad running puede ser leída para determinar si la animación se está ejecutando. En el siguiente ejemplo el elemento Texto indicará si la animación se está ejecutando o no.

NumberAnimation { id: myAnimation }
Text { text: myAnimation.running ? "Animation is running" : "Animation is not running" }

Las animaciones también pueden iniciarse y detenerse imperativamente desde JavaScript utilizando los métodos start() y stop().

Por defecto, las animaciones no se están ejecutando. Sin embargo, cuando las animaciones se asignan a propiedades, como fuentes de valores de propiedades utilizando la sintaxis on, se establecen como en ejecución por defecto.

Documentación de la señal

finished()

Esta señal se emite cuando la animación ha terminado de forma natural.

No se emite cuando running se establece en false, ni para animaciones cuya propiedad loops se establece en Animation.Infinite.

Además, sólo se emite para las animaciones independientes de nivel superior. No se emitirá para animaciones en un Comportamiento o Transición, o animaciones que formen parte de un grupo de animación.

Si alwaysRunToEnd es verdadero, esta señal no se emitirá hasta que la animación haya completado su iteración actual.

Nota: El manejador correspondiente es onFinished.

Ver también stopped(), started(), y running.

started()

Esta señal se emite cuando comienza la animación.

Sólo se activa para animaciones independientes de nivel superior. No se activará para animaciones en un Comportamiento o Transición, o animaciones que formen parte de un grupo de animación.

Nota: El manejador correspondiente es onStarted.

stopped()

Esta señal se emite cuando finaliza la animación.

La animación puede haberse detenido manualmente, o puede haberse ejecutado hasta su finalización.

Sólo se emite para animaciones independientes de nivel superior. No se emitirá para animaciones en un Comportamiento o Transición, o animaciones que formen parte de un grupo de animación.

Si alwaysRunToEnd es verdadero, esta señal no se emitirá hasta que la animación haya completado su iteración actual.

Nota: El manejador correspondiente es onStopped.

Documentación del método

void complete()

Detiene la animación, saltando a los valores finales de la propiedad.

Si la animación no se está ejecutando, llamar a este método no tiene ningún efecto. La propiedad running será falsa después de una llamada a complete().

A diferencia de stop(), complete() adelanta inmediatamente la animación hasta su final. En el siguiente ejemplo

Rectangle {
    NumberAnimation on x { from: 0; to: 100; duration: 500 }
}

una llamada a stop() en el tiempo 250ms hará que la propiedad x tenga un valor de 50, mientras que una llamada a complete() hará que la propiedad x tenga un valor de 100, exactamente como si la animación se hubiera reproducido hasta el final.

void pause()

Pausa la animación.

Si la animación ya está pausada o no running, llamar a este método no tiene ningún efecto. La propiedad paused será verdadera después de una llamada a pause().

void restart()

Reinicia la animación.

Este es un método de conveniencia, y es equivalente a llamar a stop() y luego start().

void resume()

Reanuda una animación pausada.

Si la animación no está pausada o no es running, llamar a este método no tiene ningún efecto. La propiedad paused será false después de una llamada a resume().

void start()

Inicia la animación.

Si la animación ya se está ejecutando, la llamada a este método no tiene ningún efecto. La propiedad running será true después de una llamada a start().

void stop()

Detiene la animación.

Si la animación no se está ejecutando, la llamada a este método no tiene ningún efecto. Las propiedades running y paused serán falsas después de una llamada a stop().

Normalmente stop() detiene la animación inmediatamente, y la animación no tiene más influencia en los valores de las propiedades. En este ejemplo la animación

Rectangle {
    NumberAnimation on x { from: 0; to: 100; duration: 500 }
}

se detuvo en el tiempo 250ms, la propiedad x tendrá un valor de 50.

Sin embargo, si la propiedad alwaysRunToEnd está establecida, la animación continuará ejecutándose hasta que se complete y luego se detendrá. La propiedad running seguirá siendo falsa inmediatamente.

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