Auf dieser Seite

BoundaryRule QML Type

Definiert eine Einschränkung für den Wertebereich, der für eine numerische Eigenschaft festgelegt werden kann. Mehr...

Import Statement: import Qt.labs.animation

Eigenschaften

Signale

Methoden

Ausführliche Beschreibung

Eine BoundaryRule definiert den Wertebereich, den eine bestimmte Eigenschaft annehmen darf. Wenn ein Wert außerhalb dieses Bereichs festgelegt werden soll, wird über eine Easing-Kurve ein „Widerstand“ ausgeübt.

Die folgende „BoundaryRule“ verhindert beispielsweise, dass „ DragHandler “ das Rechteck zu weit verschiebt:

import QtQuick
import Qt.labs.animation

Rectangle {
    id: root
    width: 170; height: 120
    color: "green"

    DragHandler {
        id: dragHandler
        yAxis.minimum: -1000
        xAxis.minimum: -1000
        onActiveChanged: if (!active) xbr.returnToBounds();
    }

    BoundaryRule on x {
        id: xbr
        minimum: -50
        maximum: 100
        minimumOvershoot: 40
        maximumOvershoot: 40
    }
}

Beachten Sie, dass einer Eigenschaft nicht mehr als eine „BoundaryRule“ zugewiesen werden kann.

Siehe auch „Animationen und Übergänge in Qt Quick “, Beispiel für ein VerhaltenQt Qmlsowie „Qt Quick -Beispiele – Zeiger-Handler“.

Eigenschaftsdokumentation

currentOvershoot : real

Diese Eigenschaft gibt den Betrag an, um den der zuletzt festgelegte Wert der abgefangenen Eigenschaft den Wert maximum übersteigt oder unter dem Wert minimum liegt.

Er ist positiv, wenn der Eigenschaftswert „ maximum “ übersteigt, negativ, wenn der Eigenschaftswert unter „ minimum “ liegt, oder 0, wenn der Eigenschaftswert innerhalb beider Grenzwerte liegt.

easing : enumeration

Diese Eigenschaft enthält die Beschleunigungskurve, die im Überschwingmodus angewendet werden soll (immer dann, wenn die Einschränkung „ minimum “ oder „ maximum “ verletzt wird, während sich der Wert noch innerhalb des jeweiligen Überschwingbereichs befindet).

Die Standard-Easing-Kurve ist „ QEasingCurve::OutQuad “.

enabled : bool

Diese Eigenschaft legt fest, ob die Regel angewendet wird, wenn sich der Wert der überwachten Eigenschaft ändert.

Standardmäßig ist eine „ BoundaryRule “ aktiviert.

maximum : real

Diese Eigenschaft enthält den größten Wert, den die Eigenschaft ohne Einschränkungen annehmen darf. Wird die Eigenschaft auf einen größeren Wert gesetzt, wird sie durch easing und maximumOvershoot eingeschränkt.

Der Standardwert ist „ 1 “.

maximumOvershoot : real

Diese Eigenschaft gibt den Wert an, um den die Eigenschaft über maximum liegen darf. Immer wenn der Wert größer als maximum und kleiner als maximum + maximumOvershoot ist, wird er durch die Kurve easing begrenzt. Wenn der Wert versucht, maximum + maximumOvershoot zu überschreiten, erfolgt ein harter Stopp.

Der Standardwert ist 0.

minimum : real

Diese Eigenschaft enthält den kleinsten uneingeschränkten Wert, den die Eigenschaft annehmen darf. Wird die Eigenschaft auf einen kleineren Wert gesetzt, wird sie durch easing und minimumOvershoot eingeschränkt.

Der Standardwert ist „ 0 “.

minimumOvershoot : real

Diese Eigenschaft gibt den Betrag an, um den die Eigenschaft unter minimum liegen darf. Immer wenn der Wert kleiner als minimum und größer als minimum - minimumOvershoot ist, unterliegt er der Einschränkung durch die Kurve easing. Wenn der Wert versucht, unter minimum - minimumOvershoots zu fallen, erfolgt ein harter Stopp.

Der Standardwert ist 0.

overshootFilter : enumeration

Diese Eigenschaft legt die Aggregationsfunktion fest, die auf den abgefangenen Eigenschaftswert angewendet wird.

Ist diese Eigenschaft auf „ BoundaryRule.None “ (Standard) gesetzt, enthält die abgefangene Eigenschaft einen Wert, dessen Überschreitung auf „ currentOvershoot “ begrenzt ist. Ist diese Eigenschaft auf „ BoundaryRule.Peak “ gesetzt, enthält die abgefangene Eigenschaft einen Wert, dessen Überschreitung auf „ peakOvershoot “ begrenzt ist.

overshootScale : real

Diese Eigenschaft gibt den Wert an, um den der „ easing “ während des Überschwingvorgangs skaliert wird. Wenn beispielsweise ein Element nicht mehr als 100 Pixel über eine bestimmte Grenze hinaus verschoben werden darf und der Benutzer (mithilfe eines Eingabe-Handlers) versucht, es 100 Pixel über die Grenze hinauszuziehen, wird dies gelingen, wenn „overshootScale“ auf 1 gesetzt ist: Die Easing-Kurve bewirkt lediglich eine Änderung der Geschwindigkeit, mit der sich das Element vom Überschwingswert 0 bis zum Überschwingswert 100 bewegt. Ist der Wert jedoch auf 0,5 gesetzt, übt der „ BoundaryRule “ einen Widerstand aus, sodass sich das Element, wenn der Benutzer versucht, es um 100 Pixel zu verschieben, nur um 50 Pixel bewegt; und die Easing-Kurve moduliert die Bewegungsgeschwindigkeit so, dass sich das Element zu Beginn möglicherweise synchron mit der vom Benutzer beabsichtigten Bewegung bewegt und dann, je nach Form der Easing-Kurve, langsamer wird.

Der Standardwert ist 0,5.

peakOvershoot : real

Diese Eigenschaft enthält den bisher höchsten oder tiefsten Wert von „ currentOvershoot “, der beobachtet wurde, bis „ returnToBounds()“ aufgerufen wird.

Dies kann nützlich sein, wenn bekannt ist, dass der abgefangene Eigenschaftswert Schwankungen unterliegt, und Sie den maximalen Überschwingwert ermitteln und darauf reagieren möchten, anstatt auf die Schwankungen selbst.

Siehe auch „ overshootFilter “.

returnDuration : int

Diese Eigenschaft gibt die Zeit in Millisekunden an, die „ returnToBounds()“ benötigt, um die Zieleigenschaft auf den nächstgelegenen Wert zu setzen. Ist der Wert auf 0 gesetzt, setzt „ returnToBounds()“ die Eigenschaft sofort, anstatt einen Animationsauftrag zu erstellen.

Der Standardwert beträgt 100 ms.

Signal-Dokumentation

returnedToBounds()

Dieses Signal wird ausgelöst, wenn „ currentOvershoot “ wieder zu „ 0 “ zurückkehrt, nachdem die Einschränkung „ maximum “ oder „ minimum “ verletzt wurde. Wenn die Rückkehr animiert ist, wird das Signal ausgelöst, sobald die Animation abgeschlossen ist.

Hinweis: Der entsprechende Handler ist ` onReturnedToBounds`.

Siehe auch returnDuration und returnToBounds().

Methodendokumentation

bool returnToBounds()

Setzt die abgefangene Eigenschaft auf einen Wert zwischen minimum und maximum zurück, sodass currentOvershoot und peakOvershoot beide Null sind. Dies wird animiert, wenn returnDuration größer als Null ist.

Gibt „true“ zurück, wenn der Wert angepasst werden musste, oder „false“, wenn er bereits innerhalb des zulässigen Bereichs lag.

Siehe auch returnedToBounds.

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