Auf dieser Seite

PropertyAnimation QML Type

Zeigt Änderungen der Eigenschaftswerte animiert an. Mehr...

Eigenschaften

Ausführliche Beschreibung

PropertyAnimation bietet eine Möglichkeit, Änderungen am Wert einer Eigenschaft zu animieren.

Es kann auf verschiedene Arten zur Definition von Animationen verwendet werden:

  • In einem Transition

    Um beispielsweise alle Objekte zu animieren, deren Eigenschaften „ x “ oder „ y “ sich infolge einer Zustandsänderung geändert haben, unter Verwendung einer „ InOutQuad “-Easing-Kurve:

    Rectangle {
        id: rect
        width: 100; height: 100
        color: "red"
    
        states: State {
            name: "moved"
            PropertyChanges { target: rect; x: 50 }
        }
    
        transitions: Transition {
            PropertyAnimation { properties: "x,y"; easing.type: Easing.InOutQuad }
        }
    }
  • In einem Behavior

    Beispiel: Um alle Änderungen an der Eigenschaft „ x “ eines Rechtecks zu animieren:

    Rectangle {
        width: 100; height: 100
        color: "red"
    
        Behavior on x { PropertyAnimation {} }
    
        MouseArea { anchors.fill: parent; onClicked: parent.x = 50 }
    }
  • Als Quelle für den Eigenschaftswert

    Beispiel: Um die Eigenschaft „ x “ des Rechtecks wiederholt zu animieren:

    Rectangle {
        width: 100; height: 100
        color: "red"
    
        SequentialAnimation on x {
            loops: Animation.Infinite
            PropertyAnimation { to: 50 }
            PropertyAnimation { to: 0 }
        }
    }
  • In einem Signal-Handler

    Beispiel: Um „ theObject “ beim Klicken auszublenden:

    MouseArea {
        anchors.fill: theObject
        onClicked: PropertyAnimation { target: theObject; property: "opacity"; to: 0 }
    }
  • Standalone

    Beispiel: Um die Eigenschaft „ width “ von „ rect “ über 500 ms hinweg von der aktuellen Breite auf 30 zu animieren:

    Rectangle {
        id: theRect
        width: 100; height: 100
        color: "red"
    
        // this is a standalone animation, it's not running by default
        PropertyAnimation { id: animation;
                            target: theRect;
                            property: "width";
                            to: 30;
                            duration: 500 }
    
        MouseArea { anchors.fill: parent; onClicked: animation.running = true }
    }

Je nachdem, wie die Animation verwendet wird, unterscheiden sich die üblicherweise verwendeten Eigenschaften. Weitere Informationen finden Sie in der Dokumentation zu den einzelnen Eigenschaften sowie in der Einführung zu „Animationen und Übergänge in Qt Quick “.

Beachten Sie, dass „PropertyAnimation“ vom abstrakten Typ „ Animation “ erbt. Dieser umfasst zusätzliche Eigenschaften und Methoden zur Steuerung der Animation.

Laufende Animationen ändern

Seit Qt 6.4 ist es möglich, die Eigenschaften ` from`, ` to`, ` duration` und ` easing ` für eine Animation auf oberster Ebene während ihrer Ausführung festzulegen. Die Animation berücksichtigt die Änderungen in der nächsten Schleife.

Siehe auch „Animationen und Übergänge“ unter Qt Quick sowie „Qt Quick -Beispiele – Animation“.

Dokumentation zu den Eigenschaften

duration : int

Diese Eigenschaft gibt die Dauer der Animation in Millisekunden an.

Der Standardwert beträgt 250.

easing group

easing.amplitude : real

easing.bezierCurve : list<real>

easing.overshoot : real

easing.period : real

easing.type : enumeration

Legt die für die Animation verwendete Beschleunigungskurve fest

Um eine Beschleunigungskurve festzulegen, müssen Sie mindestens den Typ angeben. Bei einigen Kurven können Sie zusätzlich Amplitude, Periode und/oder Überschwingen festlegen (weitere Details finden Sie nach der Tabelle). Die Standard-Beschleunigungskurve ist „ Easing.Linear “.

PropertyAnimation { properties: "y";
                    easing.type: Easing.InOutElastic;
                    easing.amplitude: 2.0;
                    easing.period: 1.5 }

Verfügbare Typen sind:

Easing.LinearBeschleunigungskurve für eine lineare (t)-Funktion: Die Geschwindigkeit ist konstant.Lineare Beschleunigungskurve
Easing.InQuadBeschleunigungskurve für eine quadratische (t^2)-Funktion: Beschleunigung ausgehend von einer Geschwindigkeit von Null.InQuad-Abklingkurve
Easing.OutQuadBeschleunigungskurve für eine quadratische (t²)-Funktion: Verzögerung bis zur Geschwindigkeit Null.OutQuad-Verzögerungskurve
Easing.InOutQuadBeschleunigungskurve für eine quadratische (t²) Funktion: Beschleunigung bis zur Hälfte, dann Verzögerung.InOutQuad-Beschleunigungskurve
Easing.OutInQuadBeschleunigungskurve für eine quadratische (t^2)-Funktion: Abbremsung bis zur Hälfte, dann Beschleunigung.OutInQuad-Beschleunigungskurve
Easing.InCubicEasing-Kurve für eine kubische (t³) Funktion: Beschleunigung ausgehend von der Geschwindigkeit Null.InCubic-Beschleunigungs- und Verzögerungskurve
Easing.OutCubicEasing-Kurve für eine kubische (t³) Funktion: Abbremsen auf Nullgeschwindigkeit.OutCubic-Beschleunigungskurve
Easing.InOutCubicEasing-Kurve für eine kubische (t³) Funktion: Beschleunigung bis zur Hälfte, dann Abbremsung.InOutCubic-Beschleunigungskurve
Easing.OutInCubicEasing-Kurve für eine kubische (t³) Funktion: Verzögerung bis zur Hälfte, dann Beschleunigung.OutInCubic-Überleitungskurve
Easing.InQuartEasing-Kurve für eine quartische (t^4) Funktion: Beschleunigung ausgehend von der Geschwindigkeit Null.InQuart-Easing-Kurve
Easing.OutQuartEasing-Kurve für eine Funktion vierten Grades (t^4): Abbremsen auf Geschwindigkeitswert Null.OutQuart-Easing-Kurve
Easing.InOutQuartEasing-Kurve für eine quartische (t^4) Funktion: Beschleunigung bis zur Hälfte, dann Abbremsung.InOutQuart-Easing-Kurve
Easing.OutInQuartEasing-Kurve für eine quartische (t^4) Funktion: Abbremsung bis zur Hälfte, dann Beschleunigung.OutInQuart-Easing-Kurve
Easing.InQuintEasing-Kurve für eine Funktion fünften Grades (t^5): Beschleunigung ausgehend von der Geschwindigkeit Null.InQuint-Abflachungskurve
Easing.OutQuintEasing-Kurve für eine Funktion fünfter Potenz (t^5): Abbremsen auf Geschwindigkeit Null.OutQuint-Abklingkurve
Easing.InOutQuintEasing-Kurve für eine Funktion fünfter Potenz (t^5): Beschleunigung bis zur Hälfte, dann Verzögerung.InOutQuint-Beschleunigungskurve
Easing.OutInQuintEasing-Kurve für eine Funktion 5. Grades (t^5): Verzögerung bis zur Hälfte, dann Beschleunigung.OutInQuint-Beschleunigungskurve
Easing.InSineBeschleunigungs-/Verzögerungskurve für eine sinusförmige (sin(t)) Funktion: Beschleunigung ausgehend von der Geschwindigkeit Null.InSine-Beschleunigungskurve
Easing.OutSineEasing-Kurve für eine sinusförmige (sin(t)) Funktion: Abbremsen auf Nullgeschwindigkeit.OutSine-Verlaufskurve
Easing.InOutSineEasing-Kurve für eine sinusförmige (sin(t)) Funktion: Beschleunigung bis zur Hälfte, dann Verzögerung.InOutSine-Beschleunigungskurve
Easing.OutInSineEasing-Kurve für eine sinusförmige (sin(t)) Funktion: Abbremsen bis zur Hälfte, dann Beschleunigen.OutInSine-Beschleunigungskurve
Easing.InExpoBeschleunigungs- und Verzögerungskurve für eine exponentielle (2^t) Funktion: Beschleunigung ausgehend von der Geschwindigkeit Null.InExpo-Abflachungskurve
Easing.OutExpoEasing-Kurve für eine exponentielle (2^t) Funktion: Abbremsen auf Geschwindigkeit Null.OutExpo-Abklingkurve
Easing.InOutExpoEasing-Kurve für eine exponentielle (2^t)-Funktion: Beschleunigung bis zur Hälfte, dann Abbremsung.InOutExpo-Abklingkurve
Easing.OutInExpoBeschleunigungs-/Verzögerungskurve für eine exponentielle (2^t)-Funktion: Verzögerung bis zur Hälfte, dann Beschleunigung.OutInExpo-Abklingkurve
Easing.InCircÜberblendkurve für eine zirkuläre (sqrt(1-t^2))-Funktion: Beschleunigung ausgehend von der Geschwindigkeit Null.InCirc-Abflachungskurve
Easing.OutCircEasing-Kurve für eine zirkuläre (sqrt(1-t^2))-Funktion: Abbremsen auf Nullgeschwindigkeit.OutCirc-Verzögerungskurve
Easing.InOutCircEasing-Kurve für eine zirkulare (sqrt(1-t^2))-Funktion: Beschleunigung bis zur Hälfte, dann Abbremsung.InOutCirc-Überblendkurve
Easing.OutInCircEasing-Kurve für eine zirkulare (sqrt(1-t^2))-Funktion: Abbremsen bis zur Hälfte, dann Beschleunigung.OutInCirc-Überblendkurve
Easing.InElasticEasing-Kurve für eine elastische Funktion (exponentiell abklingende Sinuswelle): Beschleunigung ausgehend von der Geschwindigkeit Null.
Die Spitzenamplitude lässt sich mit dem Amplitudenparameter und die Abklingdauer mit dem Periodenparameter einstellen.
InElastic-Easing-Kurve
Easing.OutElasticEasing-Kurve für eine elastische (exponentiell abklingende Sinuswelle): Abbremsen auf Nullgeschwindigkeit.
Die Spitzenamplitude lässt sich mit dem Parameter „amplitude“ einstellen, die Abklingdauer mit dem Parameter „period “.
OutElastic-Beschleunigungskurve
Easing.InOutElasticEasing-Kurve für eine elastische (exponentiell abklingende Sinuswelle): Beschleunigung bis zur Hälfte, dann Abbremsung.InOutElastic-Beschleunigungskurve
Easing.OutInElasticEasing-Kurve für eine elastische (exponentiell abklingende Sinuswellen-)Funktion: Abbremsen bis zur Hälfte, dann Beschleunigen.OutInElastic-Beschleunigungskurve
Easing.InBackEasing-Kurve für eine „Back“-Funktion (kubische Funktion mit Überschwingen: (s+1)*t^3 - s*t^2) mit Einlauf: Beschleunigung ausgehend von einer Geschwindigkeit von Null.InBack-Abklingkurve
Easing.OutBackEasing-Kurve für eine „Back“-Funktion (kubische Funktion mit Überschwingen: (s+1)*t^3 - s*t^2) beim Auslaufen: Abbremsen auf Nullgeschwindigkeit.OutBack-Abflachungskurve
Easing.InOutBackEasing-Kurve für eine „Back“-Funktion (kubische Funktion mit Überschwingen: (s+1)*t^3 - s*t^2) beim Ein- und Ausblenden: Beschleunigung bis zur Hälfte, dann Verzögerung.InOutBack-Abklingkurve
Easing.OutInBackEasing-Kurve für einen Rücklauf (kubisches Easing mit Überschwingen: (s+1)*t^3 - s*t^2) mit Ein- und Auslauf: Abbremsen bis zur Hälfte, dann Beschleunigen.OutInBack-Ablaufkurve
Easing.InBounceEasing-Kurve für eine Bounce-Funktion (exponentiell abklingender parabolischer Bounce): Beschleunigung ausgehend von der Geschwindigkeit Null.InBounce-Abklingkurve
Easing.OutBounceEasing-Kurve für eine Rückprallfunktion (exponentiell abklingender parabolischer Rückprall): Abbremsen auf Nullgeschwindigkeit.OutBounce-Abklingkurve
Easing.InOutBounceEasing-Kurve für eine Bounce-Funktion (exponentiell abklingender parabolischer Bounce) mit Ein-/Ausblenden: Beschleunigung bis zur Hälfte, dann Verzögerung.InOutBounce-Beschleunigungskurve
Easing.OutInBounceEasing-Kurve für eine Bounce-Funktion (exponentiell abklingender parabolischer Bounce) mit Ein-/Ausblenden: Abbremsen bis zur Hälfte, dann Beschleunigung.OutInBounce-Beschleunigungskurve
Easing.BezierSplineBenutzerdefinierte Easing-Kurve, definiert durch die Eigenschaft „easing.bezierCurve“.

easing.amplitude Gilt nur für Bounce- und elastische Kurven (Kurven vom Typ „ Easing.InBounce “, „ Easing.OutBounce “, „ Easing.InOutBounce “, „ Easing.OutInBounce “, „ Easing.InElastic “, „ Easing.OutElastic “, „ Easing.InOutElastic “ oder „ Easing.OutInElastic “).

easing.overshoot gilt nur, wenn „ easing.type “ einer der folgenden Werte ist: „ Easing.InBack “, „ Easing.OutBack “, „ Easing.InOutBack “ oder „ Easing.OutInBack “.

easing.period gilt nur, wenn `easing.type` einer der folgenden Werte ist: ` Easing.InElastic`, ` Easing.OutElastic`, ` Easing.InOutElastic ` oder ` Easing.OutInElastic`.

easing.bezierCurve gilt nur, wenn „easing.type“ einer der folgenden Werte ist: „ Easing.BezierSpline “. Diese Eigenschaft ist eine Liste <real>, die Gruppen von drei Punkten enthält, die eine Kurve von 0,0 bis 1,1 definieren – Kontrollpunkt 1, Kontrollpunkt 2, Endpunkt: [cx1, cy1, cx2, cy2, endx, endy, ...]. Der letzte Punkt muss 1,1 sein.

Eine Demonstration der verschiedenen Easing-Einstellungen finden Sie unter „Easing-Kurven “.

exclude : list<QtObject> [read-only]

Diese Eigenschaft enthält die Elemente, die von dieser Animation nicht betroffen sein sollen.

Siehe auch „ PropertyAnimation::targets “.

from : variant

Diese Eigenschaft enthält den Startwert für die Animation.

Wenn die „ PropertyAnimation “ innerhalb eines „ Transition “ oder „ Behavior “ definiert ist, entspricht dieser Wert standardmäßig dem im Startzustand des „ Transition “ definierten Wert oder dem aktuellen Wert der Eigenschaft zum Zeitpunkt der Auslösung des „ Behavior “.

Siehe auch „Animationen und Übergänge“ unter Qt Quick.

properties : string

property : string

target : QtObject

targets : list<QtObject> [read-only]

Diese Eigenschaften werden als Menge verwendet, um zu bestimmen, welche Eigenschaften animiert werden sollen. Die Singular- und Pluralformen sind funktional identisch, z. B.

NumberAnimation { target: theItem; property: "x"; to: 500 }

hat dieselbe Bedeutung wie

NumberAnimation { targets: theItem; properties: "x"; to: 500 }

Die Singularformen sind leicht optimiert; wenn Sie also nur ein einziges Ziel bzw. eine einzige Eigenschaft animieren möchten, sollten Sie versuchen, diese zu verwenden.

Die Eigenschaft „ targets “ ermöglicht die Festlegung mehrerer Ziele. Dies animiert beispielsweise die Eigenschaft „ x “ sowohl von itemA als auch von itemB:

NumberAnimation { targets: [itemA, itemB]; properties: "x"; to: 500 }

In vielen Fällen müssen diese Eigenschaften nicht explizit angegeben werden, da sie vom Animations-Framework abgeleitet werden können:

Wertquelle / VerhaltenWird eine Animation als Wertquelle oder in einem Verhalten verwendet, können sowohl das Standardziel als auch der Name der zu animierenden Eigenschaft abgeleitet werden.
Rectangle {
    id: theRect
    width: 100; height: 100
    color: Qt.rgba(0,0,1)
    NumberAnimation on x { to: 500; loops: Animation.Infinite } //animate theRect's x property
    Behavior on y { NumberAnimation {} } //animate theRect's y property
}
ÜbergangBei der Verwendung in einem Übergang wird davon ausgegangen, dass eine Eigenschaftsanimation allen Zielen, aber keinen Eigenschaften entspricht. In der Praxis bedeutet dies, dass Sie zumindest die Eigenschaften angeben müssen, damit die Animation überhaupt etwas bewirkt.
Rectangle {
    id: theRect
    width: 100; height: 100
    color: Qt.rgba(0,0,1)
    Item { id: uselessItem }
    states: State {
        name: "state1"
        PropertyChanges {
            theRect {
                x: 200
                y: 200
                z: 4
            }
            uselessItem {
                x: 10
                y: 10
                z: 2
            }
        }
    }
    transitions: Transition {
        //animate both theRect's and uselessItem's x and y to their final values
        NumberAnimation { properties: "x,y" }

        //animate theRect's z to its final value
        NumberAnimation { target: theRect; property: "z" }
    }
}
EinzelnWird eine Animation eigenständig verwendet, müssen sowohl das Ziel als auch die Eigenschaft explizit angegeben werden.
Rectangle {
    id: theRect
    width: 100; height: 100
    color: Qt.rgba(0,0,1)
    //need to explicitly specify target and property
    NumberAnimation { id: theAnim; target: theRect; property: "x"; to: 500 }
    MouseArea {
        anchors.fill: parent
        onClicked: theAnim.start()
    }
}

Wie im obigen Beispiel zu sehen ist, werden die Eigenschaften als durch Kommas getrennte Zeichenfolge der zu animierenden Eigenschaftsnamen angegeben.

Siehe auch „ exclude “ und „Animation and Transitions“ unter Qt Quick.

to : variant

Diese Eigenschaft enthält den Endwert der Animation.

Wenn der „ PropertyAnimation “ innerhalb eines „ Transition “ oder „ Behavior “ definiert ist, wird dieser Wert standardmäßig auf den im Endzustand des „ Transition “ definierten Wert oder auf den Wert der Eigenschaftsänderung gesetzt, die den „ Behavior “ ausgelöst hat.

Siehe auch „Animationen und Übergänge“ unter Qt Quick.

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