En esta página

Animator QML Type

Es la base de todos los animadores QML. Más...

Import Statement: import QtQuick
Inherits:

Animation

Inherited By:

OpacityAnimator, RotationAnimator, ScaleAnimator, UniformAnimator, XAnimator, and YAnimator

Propiedades

Descripción detallada

Los tipos Animator son un tipo especial de animación que operan directamente sobre el gráfico de escena de Qt Quick, en lugar de sobre los objetos QML y sus propiedades, como hacen los tipos Animation normales. Esto tiene la ventaja de que las animaciones basadas en Animator pueden animar en el hilo de renderizado del gráfico de escena incluso cuando el hilo de UI está bloqueado.

El valor de la propiedad QML será actualizado después de que la animación haya terminado. La propiedad no se actualiza mientras la animación se está ejecutando.

Los tipos Animator pueden ser utilizados como cualquier otro tipo Animation.

Rectangle {
    id: mixBox
    width: 50
    height: 50
    ParallelAnimation {
        ColorAnimation {
            target: mixBox
            property: "color"
            from: "forestgreen"
            to: "lightsteelblue";
            duration: 1000
        }
        ScaleAnimator {
            target: mixBox
            from: 2
            to: 1
            duration: 1000
        }
        running: true
    }
}

Si todas las sub-animaciones de ParallelAnimation y SequentialAnimation son tipos Animator, ParallelAnimation y SequentialAnimation también serán tratadas como Animator y serán ejecutadas en el thread de renderizado del gráfico de escena cuando sea posible.

Los tipos Animator pueden ser usados para animaciones durante transiciones, pero no soportan la propiedad reversible.

El tipo Animator 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 animador que heredan de él. Si se intenta utilizar el tipo Animator directamente, se producirá un error.

Nota: Los tipos Animator no tienen ningún beneficio cuando se utiliza un bucle de renderizado no subprocesado.

Nota: Se recomienda que las aplicaciones consideren diseños basados en principios multihilo y asíncronos, en lugar de confiar en Animators para mostrar contenido animado mientras se realiza un trabajo costoso y bloqueante en el hilo principal (GUI). En lugar de operaciones largas y bloqueantes, prefiera utilizar WorkerScript y asynchronous image loading en QML, e hilos de trabajo, algoritmos paralelos, Qt Concurrenty coroutines en C++, manteniendo así la respuesta de toda la aplicación y la interfaz de usuario en todo momento.

Documentación de propiedades

duration : int

Esta propiedad contiene la duración de la animación en milisegundos.

El valor por defecto es 250.

easing group

easing.amplitude : real

easing.bezierCurve : list<real>

easing.overshoot : real

easing.period : real

easing.type : enumeration

Especifica la curva de flexión utilizada para la animación.

Para especificar una curva de servidumbre es necesario especificar al menos el tipo. Para algunas curvas también se puede especificar la amplitud, el periodo y/o el rebasamiento (más detalles después de la tabla). La curva por defecto es Easing.Linear.

PropertyAnimation { properties: "y";
                    easing.type: Easing.InOutElastic;
                    easing.amplitude: 2.0;
                    easing.period: 1.5 }

Los tipos disponibles son:

Easing.LinearCurva de relajación para una función lineal (t): la velocidad es constante.Curva de flexibilización lineal
Easing.InQuadCurva de relajación para una función cuadrática (t^2): aceleración desde velocidad cero.Curva de flexibilización InQuad
Easing.OutQuadCurva de relajación para una función cuadrática (t^2): desaceleración hasta velocidad cero.Curva de flexibilización OutQuad
Easing.InOutQuadCurva de relajación de una función cuadrática (t^2): aceleración hasta la mitad y, a continuación, deceleración.Curva de flexión InOutQuad
Easing.OutInQuadCurva de relajación de una función cuadrática (t^2): desaceleración hasta la mitad y, a continuación, aceleración.Curva de relajación OutInQuad
Easing.InCubicCurva de relajación de una función cúbica (t^3): aceleración a partir de la velocidad cero.Curva de flexión InCubic
Easing.OutCubicCurva de relajación de una función cúbica (t^3): desaceleración hasta velocidad cero.Curva de relajación OutCubic
Easing.InOutCubicCurva de relajación de una función cúbica (t^3): aceleración hasta la mitad y, a continuación, deceleración.Curva de flexión InOutCubic
Easing.OutInCubicCurva de relajación de una función cúbica (t^3): desaceleración hasta la mitad y, a continuación, aceleración.OutInCubic curva de relajación
Easing.InQuartCurva de relajación de una función cuártica (t^4): aceleración a partir de la velocidad cero.Curva de flexibilización InQuart
Easing.OutQuartCurva de relajación de una función cuártica (t^4): desaceleración hasta velocidad cero.Curva de flexibilización OutQuart
Easing.InOutQuartCurva decreciente de una función cuádruple (t^4): aceleración hasta la mitad y, a continuación, deceleración.Curva de flexibilización InOutQuart
Easing.OutInQuartCurva decreciente de una función cuártica (t^4): desaceleración hasta la mitad y, a continuación, aceleración.Curva de relajación OutInQuart
Easing.InQuintCurva de relajación de una función quíntica (t^5): aceleración a partir de la velocidad cero.Curva de flexibilización InQuint
Easing.OutQuintCurva de relajación de una función quíntica (t^5): desaceleración hasta velocidad cero.Curva de flexibilización OutQuint
Easing.InOutQuintCurva de progresión de una función quíntica (t^5): aceleración hasta la mitad y, a continuación, deceleración.Curva de flexión InOutQuint
Easing.OutInQuintCurva de progresión de una función quíntica (t^5): desaceleración hasta la mitad y, a continuación, aceleración.Curva de relajación OutInQuint
Easing.InSineCurva de relajación de una función sinusoidal (sin(t)): aceleración a partir de velocidad cero.Curva de flexibilización InSine
Easing.OutSineCurva de relajación de una función sinusoidal (sin(t)): desaceleración hasta velocidad cero.Curva de relajación OutSine
Easing.InOutSineCurva de relajación de una función sinusoidal (sin(t)): aceleración hasta la mitad y, a continuación, deceleración.Curva de relajación InOutSine
Easing.OutInSineCurva de relajación de una función sinusoidal (sin(t)): desaceleración hasta la mitad y, a continuación, aceleración.Curva de relajación OutInSine
Easing.InExpoCurva de relajación de una función exponencial (2^t): aceleración a partir de la velocidad cero.Curva de flexibilización de InExpo
Easing.OutExpoCurva de relajación de una función exponencial (2^t): desaceleración hasta velocidad cero.Curva de relajación de OutExpo
Easing.InOutExpoCurva de relajación de una función exponencial (2^t): aceleración hasta la mitad y, a continuación, deceleración.Curva de relajación InOutExpo
Easing.OutInExpoCurva de relajación de una función exponencial (2^t): desaceleración hasta la mitad y, a continuación, aceleración.Curva de flexibilización OutInExpo
Easing.InCircCurva de relajación de una función circular (sqrt(1-t^2)): aceleración desde velocidad cero.Curva de flexibilización InCirc
Easing.OutCircCurva de relajación de una función circular (sqrt(1-t^2)): desaceleración hasta velocidad cero.Curva de flexibilización OutCirc
Easing.InOutCircCurva de relajación de una función circular (sqrt(1-t^2)): aceleración hasta la mitad y, a continuación, deceleración.Curva de flexibilización InOutCirc
Easing.OutInCircCurva de relajación de una función circular (sqrt(1-t^2)): desaceleración hasta la mitad y, a continuación, aceleración.Curva de flexibilización OutInCirc
Easing.InElasticCurva de relajación para una función elástica (onda sinusoidal exponencialmente decreciente): aceleración desde velocidad cero.
La amplitud del pico puede ajustarse con el parámetro amplitud, y el periodo de decaimiento con el parámetro periodo.
EnCurva de flexibilización
Easing.OutElasticCurva de relajación para una función elástica (onda sinusoidal exponencialmente decreciente): desaceleración a velocidad cero.
La amplitud del pico puede ajustarse con el parámetro amplitud y el periodo de decaimiento con el parámetro periodo.
FueraCurva de flexibilización
Easing.InOutElasticCurva de atenuación de una función elástica (onda sinusoidal exponencialmente decreciente): aceleración hasta la mitad y, a continuación, deceleración.InOutCurva de flexibilización
Easing.OutInElasticCurva de relajación de una función elástica (senoidal exponencialmente decreciente): desaceleración hasta la mitad y, a continuación, aceleración.OutInCurva de flexibilización elástica
Easing.InBackCurva de relajación de una función cúbica (s+1)*t^3 - s*t^2) de retroceso: aceleración a partir de la velocidad cero.Curva de flexibilización InBack
Easing.OutBackCurva de relajación para una espalda (función cúbica de sobreimpulso: (s+1)*t^3 - s*t^2) relajación de salida: desaceleración a velocidad cero.Curva de relajación OutBack
Easing.InOutBackCurva de relajación para una espalda (función cúbica de rebasamiento: (s+1)*t^3 - s*t^2) aceleración/desaceleración: aceleración hasta la mitad, luego desaceleración.Curva de flexión InOutBack
Easing.OutInBackCurva de relajación para un rebote (función cúbica de relajación: (s+1)*t^3 - s*t^2) relajación de entrada/salida: desaceleración hasta la mitad, luego aceleración.Curva de flexión OutInBack
Easing.InBounceCurva de relajación para una función de rebote (rebote parabólico exponencialmente decreciente): aceleración desde velocidad cero.Curva de flexibilización InBounce
Easing.OutBounceCurva de relajación para una función de rebote (rebote parabólico exponencialmente decreciente): desaceleración hasta velocidad cero.Curva de flexibilización OutBounce
Easing.InOutBounceCurva de relajación para una función de rebote (rebote parabólico exponencialmente decreciente): aceleración hasta la mitad, luego desaceleración.Curva de flexibilización InOutBounce
Easing.OutInBounceCurva de relajación para una función de rebote (rebote parabólico con decaimiento exponencial): desaceleración hasta la mitad y, a continuación, aceleración.Curva de flexibilización OutInBounce
Easing.BezierSplineCurva de relajación personalizada definida por la propiedad easing.bezierCurve.

easing.amplitude sólo es aplicable para curvas de rebote y elásticas (curvas de tipo Easing.InBounce, Easing.OutBounce, Easing.InOutBounce, Easing.OutInBounce, Easing.InElastic, Easing.OutElastic, Easing.InOutElastic o Easing.OutInElastic).

easing.overshoot sólo es aplicable si easing.type es Easing.InBack, Easing.OutBack, Easing.InOutBack o Easing.OutInBack.

easing.period sólo es aplicable si easing.type es: Easing.InElastic, Easing.OutElastic, Easing.InOutElastic o Easing.OutInElastic.

easing.bezierCurve sólo es aplicable si easing.type es: Easing.BezierSpline. Esta propiedad es una lista<real> que contiene grupos de tres puntos que definen una curva de 0,0 a 1,1 - control1, control2, punto final: [cx1, cy1, cx2, cy2, endx, endy, ...]. El último punto debe ser 1,1.

Consulte las curvas de suavizado para ver una demostración de los distintos ajustes de suavizado.

from : real

Esta propiedad contiene el valor inicial de la animación.

Si el Animator está definido dentro de un Transition o Behavior, este valor es por defecto el valor definido en el estado de inicio del Transition, o el valor actual de la propiedad en el momento en que el Behavior es disparado.

Ver también Animación y Transiciones en Qt Quick.

target : QtQuick::Item

Esta propiedad contiene el ítem objetivo del animador.

Nota: Los objetivos del animador deben ser de tipo Item.

to : real

Esta propiedad contiene el valor final de la animación.

Si el Animator está definido dentro de un Transition o Behavior, este valor por defecto es el valor definido en el estado final del Transition, o el valor del cambio de propiedad que desencadenó el Behavior.

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