LottieAnimation QML Type
Un reproductor Lottie para Qt. Más...
| Import Statement: | import Qt.labs.lottieqt 1.0 |
| Inherits: |
Propiedades
- autoPlay : bool
- direction : enumeration
- endFrame : int
- frameRate : int
- loops : int
- quality : enumeration
- source : url
- startFrame : int
- status : enumeration
Señales
- finished()
Métodos
- double getDuration(bool inFrames)
- void gotoAndPlay(int frame)
- bool gotoAndPlay(string frameMarker)
- void gotoAndStop(int frame)
- bool gotoAndStop(string frameMarker)
- void pause()
- void play()
- void start()
- void stop()
- void togglePause()
Descripción detallada
El tipo LottieAnimation muestra archivos en formato Lottie.
LottieAnimation se utiliza para cargar y renderizar archivos Lottie exportados desde Adobe After Effects. Actualmente, sólo se admite un subconjunto de la especificación Lottie completa. Las desviaciones más notables son:
- Sólo soporta la capa Shape
- Sólo es compatible el modo de fotogramas enteros de una línea de tiempo (los números de fotogramas reales y el tiempo se redondean al número entero más próximo).
- No se admiten expresiones.
Para ver la lista completa de desviaciones, consulte la sección Limitaciones.
Ejemplo de uso
El siguiente ejemplo muestra un uso simple del tipo LottieAnimation
LottieAnimation { loops: 2 quality: LottieAnimation.MediumQuality source: "animation.json" autoPlay: false onStatusChanged: { if (status === LottieAnimation.Ready) { // any acvities needed before // playing starts go here gotoAndPlay(startFrame); } } onFinished: { console.log("Finished playing") } }
Nota: Cambiar la anchura o la altura del elemento no cambia el tamaño de la animación en su interior. Además, no es posible alinear el contenido dentro de un elemento LottieAnimation. Para conseguirlo, posicione la animación dentro de, por ejemplo, un Item.
Rendimiento de la renderización
Internamente, los datos de los fotogramas renderizados se almacenan en caché para mejorar el rendimiento. Puedes controlar el uso de memoria configurando la variable de entorno QLOTTIE_RENDER_CACHE_SIZE (el valor por defecto es 2).
Puedes monitorizar el rendimiento del renderizado activando dos categorías de registro:
qt.lottieqt.lottie.render- Proporciona información sobre cómo se renderiza la animaciónqt.lottieqt.lottie.render.thread- Proporciona información sobre cómo se desarrolla el proceso de renderizado.
Específicamente, puedes monitorizar si la caché de fotogramas se llena constantemente, o si el proceso de renderizado tiene que esperar a que los fotogramas estén listos. El primer caso implica que la animación es demasiado compleja, y el renderizado no puede mantener el ritmo. Intente simplificar la animación u optimice la escena QML.
Documentación de propiedades
autoPlay : bool
Define si el reproductor comenzará a reproducir la animación automáticamente después de cargar el archivo de animación.
El valor por defecto es true.
direction : enumeration
Esta propiedad mantiene la dirección de renderizado.
| Constante | Descripción |
|---|---|
LottieAnimation.Forward | Dirección de avance (por defecto) |
LottieAnimation.Reverse | Dirección inversa |
endFrame : int [read-only]
Número de fotograma del final de la animación. El valor está disponible después de que la animación se haya cargado y esté lista para reproducirse.
frameRate : int
Esta propiedad contiene el valor de la velocidad de fotogramas de la animación Lottie.
frameRate Cambia después de que el activo haya sido cargado. Cambiar la velocidad de fotogramas no tiene efecto antes de eso, ya que el valor definido en el activo anula el valor. Para cambiar la velocidad de fotogramas, puede escribir:
LottieAnimation {
source: "animation.json"
onStatusChanged: {
if (status === LottieAnimation.Ready)
frameRate = 60;
}loops : int
Esta propiedad contiene el número de bucles que el reproductor repetirá. El valor LottieAnimation.Infinite significa que el reproductor repite la animación continuamente.
El valor por defecto es 1.
quality : enumeration
Especifica la calidad de renderizado del reproductor lottie. Si se selecciona LowQuality el renderizado se realizará en un objeto frame buffer, mientras que con otras opciones, el renderizado se realizará en QImage (que a su vez se renderizará en la pantalla).
| Constante | Descripción |
|---|---|
LottieAnimation.LowQuality | No se utiliza antialiasing ni un algoritmo de transformación suave de pixmap. |
LottieAnimation.MediumQuality | Se utiliza un algoritmo de transformación suave de mapa de píxeles pero no antialiasing (Por defecto) |
LottieAnimation.HighQuality | Se utiliza antialiasing y un algoritmo de transformación suave de pixmap |
source : url
La fuente del activo Lottie que reproduce LottieAnimation.
LottieAnimation puede manejar cualquier esquema de URL soportado por Qt. La URL puede ser absoluta o relativa a la URL del componente.
Establecer la propiedad source inicia la carga de la animación de forma asíncrona. Para monitorizar el progreso de la carga, conéctese a la señal de cambio status.
startFrame : int [read-only]
Número de fotograma del inicio de la animación. El valor está disponible después de que la animación se haya cargado y esté lista para reproducirse.
status : enumeration
Esta propiedad contiene el estado actual del elemento LottieAnimation.
| Constante | Descripción |
|---|---|
LottieAnimation.Null | Un valor inicial que se utiliza cuando la fuente no está definida (Predeterminado) |
LottieAnimation.Loading | El reproductor está cargando un archivo Lottie |
LottieAnimation.Ready | La carga ha finalizado correctamente y el reproductor está listo para reproducir la animación |
LottieAnimation.Error | Se ha producido un error al cargar la animación |
Por ejemplo, puede implementar el manejador de señal onStatusChanged para monitorizar el progreso de carga de una animación de la siguiente forma:
LottieAnimation {
source: "animation.json"
autoPlay: false
onStatusChanged: {
if (status === LottieAnimation.Ready)
start();
}Documentación de la señal
finished()
Esta señal se emite cuando el reproductor ha terminado de jugar. En caso de bucle, la señal se emite cuando el último bucle ha finalizado.
Nota: El manejador correspondiente es onFinished.
Documentación del método
double getDuration(bool inFrames)
Devuelve la duración del activo que se está reproduciendo.
Si un inFrames dado es true, el valor devuelto es la duración en número de fotogramas. En caso contrario, devuelve la duración en segundos.
void gotoAndPlay(int frame)
Reproduce el activo desde la dirección frame.
bool gotoAndPlay(string frameMarker)
Reproduce el activo del fotograma que tiene un marcador con el valor frameMarker. Devuelve true si se encontró el frameMarker, false en caso contrario.
void gotoAndStop(int frame)
Mueve el cabezal de reproducción a la dirección frame y se detiene.
bool gotoAndStop(string frameMarker)
Mueve el cabezal de reproducción al marcador dado y se detiene. Devuelve true si se ha encontrado frameMarker, false en caso contrario.
void pause()
Pone en pausa la reproducción.
void play()
Inicia o continúa la reproducción desde la posición actual.
void start()
Inicia la reproducción de la animación desde el principio.
void stop()
Detiene la reproducción y vuelve a startFrame.
void togglePause()
Alterna el estado del reproductor entre los estados de reproducción y pausa.
© 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.