Animation QML Type (Uncreatable)
Bildet die Grundlage aller QML-Animationen. Mehr...
| Import Statement: | import QtQuick |
| Inherited By: | 23 typesAnchorAnimation, Animator, ColorAnimation, NumberAnimation, OpacityAnimator, ParallelAnimation, ParentAnimation, PathAnimation, PauseAnimation, PropertyAction, PropertyAnimation, QuaternionAnimation, RotationAnimation, RotationAnimator, ScaleAnimator, ScriptAction, SequentialAnimation, SmoothedAnimation, SpringAnimation, UniformAnimator, Vector3dAnimation, XAnimator, and YAnimator |
Hinweis: Dies ist ein nicht erstellbarer Typ. Er kann in QML nicht instanziiert werden.
Eigenschaften
- alwaysRunToEnd : bool
- loops : int
- paused : bool
- running : bool
Signale
Methoden
Ausführliche 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 verfügbar sind, die von ihm erben. Der Versuch, den Typ „Animation“ direkt zu verwenden, führt zu einem Fehler.
Dokumentation zu den Eigenschaften
alwaysRunToEnd : bool
Diese Eigenschaft legt fest, ob die Animation bis zum Ende weiterlaufen soll, wenn sie angehalten wird.
Ist dieser Wert „true“, wird die aktuelle Iteration der Animation zu Ende geführt, wenn sie gestoppt wird – entweder durch Setzen der Eigenschaft „ running “ auf „false“ oder durch Aufruf der Methode „ stop() “. Die Methode „ complete() “ wird von diesem Wert nicht beeinflusst.
Dieses Verhalten ist besonders nützlich, wenn die Eigenschaft „ loops “ gesetzt ist, da die Animation dann normal zu Ende läuft, aber nicht neu gestartet wird.
Standardmäßig ist die Eigenschaft „alwaysRunToEnd“ nicht gesetzt.
Hinweis: „alwaysRunToEnd“ hat keine Auswirkungen auf Animationen in einem Übergang.
loops : int
Diese Eigenschaft gibt an, wie oft die Animation abgespielt werden soll.
Standardmäßig ist „ loops “ auf 1 gesetzt: Die Animation wird einmal vollständig abgespielt und dann beendet.
Wird der Wert auf „Animation.Infinite“ gesetzt, wird die Animation kontinuierlich 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 oft.
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 derzeit angehalten ist.
Die Eigenschaft „ paused “ kann gesetzt werden, um deklarativ zu steuern, ob eine Animation angehalten ist oder nicht.
Animationen können auch imperativ über JavaScript mithilfe der Methoden „ pause() “ und „ resume() “ angehalten und fortgesetzt werden.
Standardmäßig sind Animationen nicht angehalten.
running : bool
Diese Eigenschaft gibt an, ob die Animation gerade ausgeführt wird.
Die Eigenschaft „ running “ kann gesetzt werden, um deklarativ zu steuern, ob eine Animation läuft oder nicht. Im folgenden Beispiel wird ein Rechteck animiert, sobald 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 Text-Element 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 imperativ über JavaScript mithilfe der Methoden ` start() ` und ` stop() ` gestartet und gestoppt werden.
Standardmäßig werden Animationen nicht ausgeführt. Werden Animationen jedoch mithilfe der „on“-Syntax als Eigenschaftswertquellen Eigenschaften zugewiesen, werden sie standardmäßig auf „running“ gesetzt.
Signal-Dokumentation
finished()
Dieses Signal wird ausgesendet, wenn die Animation auf natürliche Weise beendet wurde.
Es wird nicht ausgegeben, wenn „ running “ auf „ false “ gesetzt ist, und auch nicht bei Animationen, deren Eigenschaft „ loops “ auf „ Animation.Infinite “ gesetzt ist.
Außerdem wird es nur bei eigenständigen Animationen auf oberster Ebene ausgesendet. Es wird nicht bei Animationen in einem „Behavior“ oder „Transition“ ausgesendet, ebenso wenig wie bei Animationen, die Teil einer Animationsgruppe sind.
Wenn „ alwaysRunToEnd “ auf „true“ gesetzt ist, wird dieses Signal erst ausgegeben, wenn die Animation ihre aktuelle Iteration abgeschlossen hat.
Hinweis: Der entsprechende Handler ist „ onFinished “.
Siehe auch „ stopped()“, „ started()“ und „ running “.
started()
Dieses Signal wird ausgelöst, wenn die Animation beginnt.
Es wird nur bei eigenständigen Animationen auf oberster Ebene ausgelöst. Bei Animationen in einem „Behavior“ oder „Transition“ sowie bei Animationen, die Teil einer Animationsgruppe sind, wird es nicht ausgelöst.
Hinweis: Der entsprechende Handler ist „ onStarted “.
stopped()
Dieses Signal wird ausgesendet, wenn die Animation endet.
Die Animation wurde möglicherweise manuell gestoppt oder ist vollständig abgelaufen.
Es wird nur für eigenständige Animationen auf oberster Ebene ausgelöst. Es wird nicht für Animationen in einem „Behavior“ oder „Transition“ ausgelöst, ebenso wenig wie für Animationen, die Teil einer Animationsgruppe sind.
Wenn „ alwaysRunToEnd “ auf „true“ gesetzt ist, wird dieses Signal erst ausgegeben, wenn die Animation ihre aktuelle Iteration abgeschlossen hat.
Hinweis: Der entsprechende Handler ist „ onStopped “.
Methodendokumentation
void 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. Nach einem Aufruf von ` complete()` ist die Eigenschaft ` running ` auf `false` gesetzt.
Im Gegensatz zu „ stop() “ spult „ complete() “ die Animation sofort bis zum Ende vor. Im folgenden Beispiel
Rectangle {
NumberAnimation on x { from: 0; to: 100; duration: 500 }
}führt der Aufruf von ` stop() ` bei einer Zeit von 250 ms dazu, dass die Eigenschaft ` x ` den Wert 50 annimmt, während der Aufruf von ` complete() ` die Eigenschaft ` x ` auf 100 setzt – genau so, als wäre die Animation vollständig abgespielt worden.
void pause()
Hält die Animation an.
Wenn die Animation bereits angehalten ist oder nicht im Status „ running “ ist, hat der Aufruf dieser Methode keine Auswirkung. Die Eigenschaft „ paused “ ist nach einem Aufruf von „ pause() “ auf „true“ gesetzt.
void restart()
Startet die Animation neu.
Dies ist eine Komfortmethode, die dem Aufruf von „ stop() “ und anschließend „ start() “ entspricht.
void resume()
Setzt eine angehaltene Animation fort.
Wenn die Animation nicht angehalten ist oder nicht „ running “ ist, hat der Aufruf dieser Methode keine Auswirkung. Die Eigenschaft „ paused “ ist nach einem Aufruf von „ resume() “ auf „false“ gesetzt.
void start()
Startet die Animation.
Wenn die Animation bereits läuft, hat der Aufruf dieser Methode keine Auswirkung. Die Eigenschaft „ running “ nimmt nach einem Aufruf von „ start() “ den Wert „true“ an.
void stop()
Hält die Animation an.
Wenn die Animation nicht läuft, hat der Aufruf dieser Methode keine Auswirkung. Nach einem Aufruf von ` stop()` sind sowohl die Eigenschaft ` running ` als auch die Eigenschaft ` paused ` auf `false` gesetzt.
Normalerweise stoppt ` stop() ` die Animation sofort, 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 }
}bei 250 ms gestoppt wurde, hat die Eigenschaft „ x “ den Wert 50.
Wird die Eigenschaft „ alwaysRunToEnd “ jedoch gesetzt, läuft die Animation so lange weiter, bis sie abgeschlossen ist, und stoppt dann. Die Eigenschaft „ running “ wird dennoch sofort auf „false“ gesetzt.
© 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.