LottieAnimation QML Type
Ein Lottie-Player für Qt. Mehr...
| Import Statement: | import Qt.labs.lottieqt 1.0 |
Eigenschaften
- autoPlay : bool
- currentFrame : int
(since 6.12) - 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()
Ausführliche 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 ein Teil der vollständigen Lottie-Spezifikation unterstützt. Die wichtigsten Abweichungen sind:
- Es wird nur die Shape-Ebene unterstützt
- Es wird nur der ganzzahlige Frame-Modus einer Zeitleiste unterstützt (tatsächliche Frame-Nummern und Zeitangaben werden auf die nächste ganze Zahl gerundet)
- Ausdrücke werden nicht unterstützt
Eine vollständige Liste der Abweichungen finden Sie im Abschnitt „Einschränkungen “.
Anwendungsbeispiel
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: Eine Änderung der Breite oder Höhe des Elements hat keinen Einfluss auf die Größe der darin enthaltenen Animation. Außerdem ist es nicht möglich, den Inhalt innerhalb eines ` LottieAnimation `-Elements auszurichten. Um dies zu erreichen, platzieren Sie die Animation beispielsweise in einem ` Item`.
Rendering-Leistung
Intern werden die gerenderten Frame-Daten zwischengespeichert, um die Leistung zu verbessern. Sie können den Speicherverbrauch steuern, indem Sie die Umgebungsvariable `QLOTTIE_RENDER_CACHE_SIZE` setzen (Standardwert ist 2).
Sie können die Rendering-Leistung überwachen, indem Sie zwei Protokollierungskategorien aktivieren:
qt.lottieqt.lottie.render- Liefert Informationen darüber, wie die Animation gerendert wirdqt.lottieqt.lottie.render.thread- Liefert Informationen darüber, wie der Rendering-Prozess abläuft.
Insbesondere können Sie überwachen, ob der Frame-Cache ständig voll wird oder ob der Rendering-Prozess warten muss, bis Frames bereit sind. Im ersten Fall ist die Animation zu komplex, und das Rendering kann nicht mit der Geschwindigkeit mithalten. Versuchen Sie, die Animation zu vereinfachen oder die QML-Szene zu optimieren.
Dokumentation zu den Eigenschaften
autoPlay : bool
Legt fest, ob der Player die Animation automatisch abspielt, sobald die Animationsdatei geladen wurde.
Der Standardwert lautet „ true “.
currentFrame : int [read-only, since 6.12]
Die Nummer des aktuell angezeigten Animationsframes.
Diese Eigenschaft wurde in Qt 6.12 eingeführt.
direction : enumeration
Diese Eigenschaft gibt die Richtung der Darstellung an.
| Konstante | Beschreibung |
|---|---|
LottieAnimation.Forward | Vorwärtsrichtung (Standard) |
LottieAnimation.Reverse | Rückwärtsrichtung |
endFrame : int [read-only]
Bildnummer am Ende der Animation. Der Wert ist verfügbar, sobald die Animation geladen und abspielbereit ist.
frameRate : int
Diese Eigenschaft enthält den Wert für die Bildrate der Lottie-Animation.
frameRate Sie ändert sich erst, nachdem das Asset geladen wurde. Vorher hat eine Änderung der Bildrate keine Auswirkung, da der im Asset definierte Wert Vorrang hat. Um die Bildrate zu ändern, können Sie Folgendes schreiben:
LottieAnimation {
source: "animation.json"
onStatusChanged: {
if (status === LottieAnimation.Ready)
frameRate = 60;
}loops : int
Diese Eigenschaft gibt die Anzahl der Wiederholungen an, die der Player ausführt. Der Wert „ LottieAnimation.Infinite “ bedeutet, dass der Player die Animation kontinuierlich wiederholt.
Der Standardwert ist „ 1 “.
quality : enumeration
Legt die Darstellungsqualität des Lottie-Players fest. Wenn „ LowQuality “ ausgewählt ist, erfolgt die Darstellung in einem Frame-Buffer-Objekt, während bei anderen Optionen die Darstellung auf „ QImage “ erfolgt (das wiederum auf dem Bildschirm dargestellt wird).
| Konstante | Beschreibung |
|---|---|
LottieAnimation.LowQuality | Es wird weder Antialiasing noch ein Algorithmus zur glatten Pixmap-Transformation verwendet |
LottieAnimation.MediumQuality | Es wird ein Algorithmus zur glatten Pixmap-Transformation verwendet, jedoch kein Antialiasing (Standard) |
LottieAnimation.HighQuality | Es werden sowohl Antialiasing als auch ein Algorithmus zur glatten Pixmap-Transformation verwendet |
source : url
Die Quelle des Lottie-Assets, das unter LottieAnimation abgespielt wird.
LottieAnimation kann jedes von Qt unterstützte URL-Schema verarbeiten. Die URL kann absolut oder relativ zur URL der Komponente sein.
Durch Setzen der Eigenschaft „source“ wird das Laden der Animation asynchron gestartet. Um den Fortschritt des Ladevorgangs zu überwachen, verbinden Sie sich mit dem Änderungssignal „ status “.
startFrame : int [read-only]
Bildnummer, bei der die Animation beginnt. Der Wert ist verfügbar, sobald die Animation geladen 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 eine Lottie-Datei |
LottieAnimation.Ready | Das Laden wurde erfolgreich abgeschlossen und der Player ist bereit, die Animation abzuspielen |
LottieAnimation.Error | Beim Laden der Animation ist ein Fehler aufgetreten |
Beispielsweise könnten Sie einen Signal-Handler für „ onStatusChanged “ wie folgt implementieren, um den Fortschritt beim Laden einer Animation 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 wurde.
Hinweis: Der entsprechende Handler lautet „ onFinished “.
Methodendokumentation
double getDuration(bool inFrames)
Gibt die Dauer des aktuell wiedergegebenen Assets zurück.
Wenn ein bestimmtes „ inFrames “ den Wert „ true “ hat, ist der Rückgabewert die Dauer in Frames. Andernfalls wird die Dauer in Sekunden zurückgegeben.
void gotoAndPlay(int frame)
Spielt das Asset von der angegebenen Adresse frame ab.
bool gotoAndPlay(string frameMarker)
Spielt das Asset ab dem Frame ab, der einen Marker mit dem angegebenen „ frameMarker “ enthält. Gibt „ true “ zurück, wenn der „frameMarker“ gefunden wurde, andernfalls „ false “.
void gotoAndStop(int frame)
Bewegt den Abspielkopf zur angegebenen 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()
Hält die Wiedergabe an.
void play()
Die Wiedergabe wird an der aktuellen Position gestartet bzw. fortgesetzt.
void start()
Die Animation wird von Anfang an abgespielt.
void stop()
Beendet die Wiedergabe und kehrt zu „ startFrame “ zurück.
void togglePause()
Schaltet den Status des Players zwischen „Wiedergabe“ und „Pause“ 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.