Animation QML Type

Ist die Basis für alle QML-Animationen. Mehr...

Eigenschaften

Signale

Methoden

Detaillierte Beschreibung

Der Typ Animation kann nicht direkt in einer QML-Datei verwendet werden. Er dient dazu, eine Reihe gemeinsamer Eigenschaften und Methoden bereitzustellen, die für alle anderen Animationstypen, die von ihm erben, verfügbar sind. Der Versuch, den Typ Animation direkt zu verwenden, führt zu einem Fehler.

Eigenschaft Dokumentation

alwaysRunToEnd : bool

Diese Eigenschaft legt fest, ob die Animation bis zum Ende laufen soll, wenn sie angehalten wird.

Wenn diese Eigenschaft true ist, wird die Animation ihre aktuelle Iteration beenden, wenn sie angehalten wird - entweder durch Setzen der Eigenschaft running auf false oder durch Aufruf der Methode stop(). Die Methode complete() wird durch diesen Wert nicht beeinträchtigt.

Dieses Verhalten ist besonders nützlich, wenn die Eigenschaft loops gesetzt ist, da die Animation dann normal zu Ende abgespielt, aber nicht neu gestartet wird.

Standardmäßig ist die Eigenschaft alwaysRunToEnd nicht festgelegt.

Hinweis: alwaysRunToEnd hat keine Auswirkung auf Animationen in einer Transition.


loops : int

Diese Eigenschaft gibt an, wie oft die Animation abgespielt werden soll.

Standardmäßig ist loops auf 1 gesetzt: Die Animation wird einmal durchgespielt und dann angehalten.

Wenn sie auf Animation.Infinite gesetzt ist, wird die Animation so lange wiederholt, bis sie explizit gestoppt wird - entweder durch Setzen der Eigenschaft running auf false oder durch Aufruf der Methode stop().

Im folgenden Beispiel dreht sich das Rechteck unendlich lange.

Rectangle {
    width: 100; height: 100; color: "green"
    RotationAnimation on rotation {
        loops: Animation.Infinite
        from: 0
        to: 360
    }
}

paused : bool

Diese Eigenschaft gibt an, ob die Animation gerade pausiert.

Die Eigenschaft paused kann gesetzt werden, um deklarativ zu steuern, ob eine Animation angehalten ist oder nicht.

Animationen können auch über JavaScript mit den Methoden pause() und resume() angehalten und fortgesetzt werden.

Standardmäßig werden Animationen nicht angehalten.


running : bool

Diese Eigenschaft gibt an, ob die Animation gerade läuft.

Die Eigenschaft running kann gesetzt werden, um deklarativ zu steuern, ob eine Animation läuft oder nicht. Im folgenden Beispiel wird ein Rechteck animiert, wenn die Taste MouseArea gedrückt wird.

Rectangle {
    width: 100; height: 100
    NumberAnimation on x {
        running: myMouse.pressed
        from: 0; to: 100
    }
    MouseArea { id: myMouse }
}

Ebenso kann die Eigenschaft running ausgelesen werden, um festzustellen, ob die Animation läuft. Im folgenden Beispiel zeigt das Element Text an, ob die Animation läuft oder nicht.

NumberAnimation { id: myAnimation }
Text { text: myAnimation.running ? "Animation is running" : "Animation is not running" }

Animationen können auch zwingend von JavaScript aus gestartet und gestoppt werden, indem die Methoden start() und stop() verwendet werden.

Standardmäßig werden Animationen nicht ausgeführt. Wenn die Animationen jedoch Eigenschaften zugewiesen werden, werden sie als Eigenschaftswertquellen mit der on-Syntax standardmäßig auf laufend gesetzt.


Signal Dokumentation

finished()

Dieses Signal wird ausgegeben, wenn die Animation natürlich beendet ist.

Es wird nicht ausgegeben, wenn running auf false gesetzt ist, und auch nicht bei Animationen, deren Eigenschaft loops auf Animation.Infinite gesetzt ist.

Darüber hinaus wird es nur bei eigenständigen Animationen der obersten Ebene ausgegeben. Es wird nicht für Animationen in einem Behavior oder einer Transition oder für Animationen, die Teil einer Animationsgruppe sind, ausgegeben.

Wenn alwaysRunToEnd wahr ist, wird dieses Signal nicht ausgegeben, bis die Animation ihre aktuelle Iteration abgeschlossen hat.

Hinweis: Der entsprechende Handler ist onFinished.

Siehe auch stopped(), started(), und running.


started()

Dieses Signal wird ausgesendet, wenn die Animation beginnt.

Es wird nur für eigenständige Animationen der obersten Ebene ausgelöst. Es wird nicht für Animationen in einem Verhalten oder einer Transition oder für Animationen, die Teil einer Animationsgruppe sind, ausgelöst.

Hinweis: Der entsprechende Handler ist onStarted.


stopped()

Dieses Signal wird ausgesendet, wenn die Animation endet.

Die Animation kann manuell angehalten worden sein oder bis zum Ende gelaufen sein.

Es wird nur für eigenständige Animationen der obersten Ebene ausgelöst. Es wird nicht für Animationen in einem Verhalten oder einer Transition oder für Animationen, die Teil einer Animationsgruppe sind, ausgelöst.

Wenn alwaysRunToEnd wahr ist, wird dieses Signal nicht ausgegeben, bis die Animation ihre aktuelle Iteration abgeschlossen hat.

Hinweis: Der entsprechende Handler ist onStopped.


Dokumentation der Methode

complete()

Hält die Animation an und springt zu den endgültigen Eigenschaftswerten

Wenn die Animation nicht läuft, hat der Aufruf dieser Methode keine Auswirkung. Die Eigenschaft running wird nach einem Aufruf von complete() auf false gesetzt.

Im Gegensatz zu stop() wird bei complete() die Animation sofort bis zu ihrem Ende vorgespult. Im folgenden Beispiel,

Rectangle {
    NumberAnimation on x { from: 0; to: 100; duration: 500 }
}

Der Aufruf von stop() zum Zeitpunkt 250ms führt dazu, dass die Eigenschaft x einen Wert von 50 hat, während der Aufruf von complete() die Eigenschaft x auf 100 setzt, genau so, als ob die Animation die ganze Zeit durchgespielt hätte.


pause()

Pausiert die Animation

Wenn die Animation bereits pausiert oder nicht running ist, hat der Aufruf dieser Methode keine Wirkung. Die Eigenschaft paused wird nach einem Aufruf von pause() auf true gesetzt.


restart()

Startet die Animation neu

Dies ist eine Komfortmethode und entspricht dem Aufruf von stop() und dann start().


resume()

Setzt eine angehaltene Animation fort

Wenn die Animation nicht angehalten oder nicht running ist, hat der Aufruf dieser Methode keine Wirkung. Die Eigenschaft paused wird nach einem Aufruf von resume() auf false gesetzt.


start()

Startet die Animation

Wenn die Animation bereits läuft, hat der Aufruf dieser Methode keine Auswirkung. Die Eigenschaft running wird nach einem Aufruf von start() auf true gesetzt.


stop()

Stoppt die Animation

Wenn die Animation nicht läuft, hat der Aufruf dieser Methode keine Auswirkung. Die beiden Eigenschaften running und paused werden nach einem Aufruf von stop() auf false gesetzt.

Normalerweise hält stop() die Animation sofort an, und die Animation hat keinen weiteren Einfluss auf die Eigenschaftswerte. In diesem Beispiel wurde die Animation

Rectangle {
    NumberAnimation on x { from: 0; to: 100; duration: 500 }
}

zum Zeitpunkt 250ms gestoppt, hat die Eigenschaft x den Wert 50.

Wenn jedoch die Eigenschaft alwaysRunToEnd gesetzt ist, läuft die Animation weiter, bis sie abgeschlossen ist, und wird dann angehalten. Die Eigenschaft running wird trotzdem sofort auf false gesetzt.


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