LottieAnimation QML Type
Ein Lottie-Player für Qt. Mehr...
| Import Statement: | import Qt.labs.lottieqt 1.0 |
| Inherits: |
Eigenschaften
- autoPlay : bool
- direction : enumeration
- endFrame : int
- frameRate : int
- loops : int
- quality : enumeration
- source : url
- startFrame : int
- status : enumeration
Signale
- finished()
Methoden
- 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()
Detaillierte Beschreibung
Der Typ LottieAnimation zeigt Dateien im Lottie-Format an.
LottieAnimation wird zum Laden und Rendern von Lottie-Dateien verwendet, die aus Adobe After Effects exportiert wurden. Derzeit wird nur eine Teilmenge der vollständigen Lottie-Spezifikation unterstützt. Die bemerkenswertesten Abweichungen sind:
- Nur Shape-Ebene unterstützt
- Es wird nur der Integer-Frame-Modus einer Timeline unterstützt (reale Frame-Nummern und Zeiten werden auf die nächste Ganzzahl gerundet)
- Ausdrücke werden nicht unterstützt
Eine vollständige Liste der Abweichungen finden Sie im Abschnitt Beschränkungen.
Beispiel für die Verwendung
Das folgende Beispiel zeigt eine einfache Verwendung des Typs 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") } }
Hinweis: Wenn Sie die Breite oder Höhe des Elements ändern, ändert sich die Größe der Animation darin nicht. Es ist auch nicht möglich, den Inhalt innerhalb eines LottieAnimation -Elements auszurichten. Um dies zu erreichen, positionieren Sie die Animation z.B. innerhalb eines Item.
Rendering-Leistung
Intern werden die gerenderten Frame-Daten zwischengespeichert, um die Leistung zu verbessern. Sie können die Speichernutzung kontrollieren, indem Sie die Umgebungsvariable QLOTTIE_RENDER_CACHE_SIZE setzen (Standardwert ist 2).
Sie können die Rendering-Leistung überwachen, indem Sie zwei Protokollierungskategorien einschalten:
qt.lottieqt.lottie.render- Liefert Informationen darüber, wie die Animation gerendert wirdqt.lottieqt.lottie.render.thread- Gibt Auskunft darüber, wie der Rendering-Prozess abläuft.
Insbesondere können Sie überwachen, ob der Frame-Cache ständig voll ist, oder ob der Rendering-Prozess warten muss, bis die Frames bereit sind. Der erste Fall deutet darauf hin, dass die Animation zu komplex ist und das Rendering nicht mit dem Tempo mithalten kann. Versuchen Sie, die Animation zu vereinfachen, oder optimieren Sie die QML-Szene.
Dokumentation der Eigenschaften
autoPlay : bool
Legt fest, ob der Player automatisch mit der Wiedergabe der Animation beginnt, nachdem die Animationsdatei geladen wurde.
Der Standardwert ist true.
direction : enumeration
Diese Eigenschaft bestimmt die Richtung des Renderings.
| Konstante | Beschreibung |
|---|---|
LottieAnimation.Forward | Vorwärtsrichtung (Standard) |
LottieAnimation.Reverse | Umgekehrte Richtung |
endFrame : int [read-only]
Bildnummer des Endes der Animation. Der Wert ist verfügbar, nachdem die Animation geladen wurde und abspielbereit ist.
frameRate : int
Diese Eigenschaft enthält den Wert der Bildrate der Lottie-Animation.
frameRate Diese Eigenschaft ändert sich, nachdem das Asset geladen wurde. Eine Änderung der Framerate hat vorher keine Auswirkungen, da der im Asset definierte Wert den Wert überschreibt. Um die Framerate zu ändern, können Sie schreiben:
LottieAnimation {
source: "animation.json"
onStatusChanged: {
if (status === LottieAnimation.Ready)
frameRate = 60;
}loops : int
Diese Eigenschaft gibt die Anzahl der Schleifen an, die der Player wiederholt. Der Wert LottieAnimation.Infinite bedeutet, dass der Player die Animation kontinuierlich wiederholt.
Der Standardwert ist 1.
quality : enumeration
Legt die Rendering-Qualität des Lottie-Players fest. Wenn LowQuality ausgewählt ist, erfolgt das Rendering in ein Framebuffer-Objekt, während bei anderen Optionen das Rendering auf QImage erfolgt (das wiederum auf den Bildschirm gerendert wird).
| Konstante | Beschreibung |
|---|---|
LottieAnimation.LowQuality | Antialiasing oder ein glatter Pixmap-Transformationsalgorithmus werden nicht verwendet |
LottieAnimation.MediumQuality | Es wird ein glatter Pixmap-Transformationsalgorithmus verwendet, aber kein Antialiasing (Voreinstellung) |
LottieAnimation.HighQuality | Antialiasing und ein glatter Pixmap-Transformationsalgorithmus werden beide verwendet |
source : url
Die Quelle des Lottie-Assets, das LottieAnimation abspielt.
LottieAnimation kann jedes von Qt unterstützte URL-Schema verarbeiten. Die URL kann absolut oder relativ zur URL der Komponente sein.
Das Setzen der Source-Eigenschaft startet das asynchrone Laden der Animation. Um den Fortschritt des Ladens zu überwachen, verbinden Sie sich mit dem status change signal.
startFrame : int [read-only]
Bildnummer des Beginns der Animation. Der Wert ist verfügbar, nachdem die Animation geladen wurde und abspielbereit ist.
status : enumeration
Diese Eigenschaft enthält den aktuellen Status des Elements LottieAnimation.
| Konstante | Beschreibung |
|---|---|
LottieAnimation.Null | Ein Anfangswert, der verwendet wird, wenn die Quelle nicht definiert ist (Standard) |
LottieAnimation.Loading | Der Player lädt gerade eine Lottie-Datei |
LottieAnimation.Ready | Der Ladevorgang wurde erfolgreich abgeschlossen und der Player ist bereit, die Animation abzuspielen |
LottieAnimation.Error | Beim Laden der Animation ist ein Fehler aufgetreten |
Sie könnten zum Beispiel den Signalhandler onStatusChanged implementieren, um den Fortschritt des Ladens einer Animation wie folgt zu überwachen:
LottieAnimation {
source: "animation.json"
autoPlay: false
onStatusChanged: {
if (status === LottieAnimation.Ready)
start();
}Signal-Dokumentation
finished()
Dieses Signal wird ausgegeben, wenn der Player die Wiedergabe beendet hat. Im Falle einer Schleife wird das Signal ausgegeben, wenn die letzte Schleife beendet ist.
Hinweis: Der entsprechende Handler ist onFinished.
Dokumentation der Methode
double getDuration(bool inFrames)
Gibt die Dauer des aktuell abgespielten Assets zurück.
Wenn ein gegebenes inFrames true ist, ist der Rückgabewert die Dauer in Anzahl der Frames. Andernfalls wird die Dauer in Sekunden zurückgegeben.
void gotoAndPlay(int frame)
Spielt das Asset von der angegebenen frame ab.
bool gotoAndPlay(string frameMarker)
Spielt das Asset aus dem Frame ab, der eine Markierung mit dem angegebenen frameMarker hat. Gibt true zurück, wenn der frameMarker gefunden wurde, andernfalls false.
void gotoAndStop(int frame)
Bewegt den Abspielkopf auf die angegebene Adresse frame und hält an.
bool gotoAndStop(string frameMarker)
Bewegt den Abspielkopf zum angegebenen Marker und hält an. Gibt true zurück, wenn frameMarker gefunden wurde, andernfalls false.
void pause()
Pausiert die Wiedergabe.
void play()
Startet die Wiedergabe oder setzt sie an der aktuellen Position fort.
void start()
Startet die Wiedergabe der Animation von Anfang an.
void stop()
Stoppt die Wiedergabe und kehrt zu startFrame zurück.
void togglePause()
Schaltet den Status des Spielers zwischen dem Spiel- und dem Pausenstatus um.
© 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.