Auf dieser Seite

LottieAnimation QML Type

Ein Lottie-Player für Qt. Mehr...

Import Statement: import Qt.labs.lottieqt 1.0

Eigenschaften

Signale

Methoden

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 wird
  • qt.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.

KonstanteBeschreibung
LottieAnimation.ForwardVorwärtsrichtung (Standard)
LottieAnimation.ReverseRü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).

KonstanteBeschreibung
LottieAnimation.LowQualityEs wird weder Antialiasing noch ein Algorithmus zur glatten Pixmap-Transformation verwendet
LottieAnimation.MediumQualityEs wird ein Algorithmus zur glatten Pixmap-Transformation verwendet, jedoch kein Antialiasing (Standard)
LottieAnimation.HighQualityEs 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 “.

KonstanteBeschreibung
LottieAnimation.NullEin Anfangswert, der verwendet wird, wenn die Quelle nicht definiert ist (Standard)
LottieAnimation.LoadingDer Player lädt eine Lottie-Datei
LottieAnimation.ReadyDas Laden wurde erfolgreich abgeschlossen und der Player ist bereit, die Animation abzuspielen
LottieAnimation.ErrorBeim 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.