BoundaryRule QML Type

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

Import Statement: import Qt.labs.animation

Eigenschaften

Signale

Methoden

Detaillierte Beschreibung

Eine BoundaryRule definiert den Wertebereich, den eine bestimmte Eigenschaft haben darf. Wenn ein Wert, der außerhalb des Bereichs liegt, andernfalls gesetzt werden würde, wird ein "Widerstand" in Form einer Lockerungskurve angewendet.

Zum Beispiel verhindert die folgende BoundaryRule, dass DragHandler das Rechteck zu weit zieht:

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 Animation und Übergänge in Qt Quick, Beispiel für das Verhalten, Qt Qmlund Qt Quick Beispiele - Pointer Handler.

Eigenschaft Dokumentation

currentOvershoot : real

Diese Eigenschaft enthält den Betrag, um den der zuletzt gesetzte Wert der abgefangenen Eigenschaft maximum übersteigt oder kleiner als minimum ist.

Sie ist positiv, wenn der Eigenschaftswert maximum überschreitet, negativ, wenn der Eigenschaftswert kleiner als minimum ist, oder 0, wenn der Eigenschaftswert innerhalb beider Grenzen liegt.


easing : enumeration

Diese Eigenschaft enthält die Lockerungskurve, die im Überschreitungsmodus angewendet werden soll (immer dann, wenn die Beschränkung minimum oder maximum verletzt wird, während der Wert noch innerhalb des jeweiligen Überschreitungsbereichs liegt).

Die Standardabschwächungskurve ist QEasingCurve::OutQuad.


enabled : bool

Diese Eigenschaft legt fest, ob die Regel erzwungen wird, wenn sich der Wert der verfolgten Eigenschaft ändert.

Standardmäßig ist eine BoundaryRule aktiviert.


maximum : real

Diese Eigenschaft enthält den größten unbeschränkten Wert, den die Eigenschaft haben darf. Wenn die Eigenschaft auf einen größeren Wert gesetzt wird, wird sie durch easing und maximumOvershoot eingeschränkt.

Der Standardwert ist 1.


maximumOvershoot : real

Diese Eigenschaft enthält den Betrag, den die Eigenschaft über maximum liegen darf. Wenn der Wert größer als maximum und kleiner als maximum + maximumOvershoot ist, wird er durch die Kurve easing eingeschränkt. Wenn der Wert versucht, maximum + maximumOvershoot zu überschreiten, gibt es einen harten Stopp.

Der Standardwert ist 0.


minimum : real

Diese Eigenschaft enthält den kleinsten nicht eingeschränkten Wert, den die Eigenschaft haben darf. Wenn die Eigenschaft auf einen kleineren Wert eingestellt wird, wird sie durch easing und minimumOvershoot eingeschränkt.

Der Standardwert ist 0.


minimumOvershoot : real

Diese Eigenschaft enthält den Wert, den die Eigenschaft unter minimum liegen darf. Wenn der Wert kleiner als minimum und größer als minimum - minimumOvershoot ist, wird er durch die Kurve easing eingeschränkt. Wenn der Wert versucht, unter minimum - minimumOvershoots zu fallen, wird ein harter Stopp gesetzt.

Der Standardwert ist 0.


overshootFilter : enumeration

Diese Eigenschaft gibt die Aggregationsfunktion an, die auf den abgefangenen Eigenschaftswert angewendet wird.

Wenn sie auf BoundaryRule.None (Standardeinstellung) gesetzt ist, enthält die abgefangene Eigenschaft einen Wert, dessen Überschreitung auf currentOvershoot begrenzt ist. Wenn sie auf BoundaryRule.Peak gesetzt ist, enthält die abgefangene Eigenschaft einen Wert, dessen Überschreitung auf peakOvershoot begrenzt ist.


overshootScale : real

Diese Eigenschaft enthält den Betrag, um den die easing während der Überschreitungsbedingung skaliert wird. Wenn z. B. ein Element nicht mehr als 100 Pixel über eine bestimmte Grenze hinaus bewegt werden darf und der Benutzer (mit Hilfe eines Input Handlers) versucht, es 100 Pixel über die Grenze hinaus zu ziehen, wird der Benutzer Erfolg haben, wenn overshootScale auf 1 gesetzt ist: Der einzige Effekt der Lockerungskurve ist die Änderung der Geschwindigkeit, mit der sich das Element von Overshoot 0 auf Overshoot 100 bewegt. Ist der Wert jedoch auf 0,5 gesetzt, bietet BoundaryRule einen Widerstand, so dass sich das Objekt nur 50 Pixel bewegt, wenn der Benutzer versucht, 100 Pixel zu bewegen; und die Entspannungskurve moduliert die Bewegungsrate, so dass es sich anfangs synchron mit der versuchten Bewegung des Benutzers bewegt und dann langsamer wird, je nach der Form der Entspannungskurve.

Der Standardwert ist 0,5.


peakOvershoot : real

Diese Eigenschaft speichert den positivsten oder negativsten Wert von currentOvershoot, der gesehen wurde, bis returnToBounds() aufgerufen wird.

Dies kann nützlich sein, wenn bekannt ist, dass der abgefangene Eigenschaftswert schwankt, und Sie den maximalen Betrag der Überschreitung finden und darauf reagieren wollen, anstatt auf die Schwankungen.

Siehe auch overshootFilter.


returnDuration : int

Diese Eigenschaft gibt die Zeit in Millisekunden an, die returnToBounds() benötigt, um die Zieleigenschaft auf die nächstgelegene Grenze zurückzuführen. Wenn sie auf 0 gesetzt ist, setzt returnToBounds() die Eigenschaft sofort, anstatt einen Animationsauftrag zu erstellen.

Der Standardwert ist 100 ms.


Signal Dokumentation

returnedToBounds()

Dieses Signal wird ausgesendet, wenn currentOvershoot wieder zu 0 zurückkehrt, nachdem die Beschränkung maximum oder minimum verletzt wurde. Wenn die Rückkehr animiert ist, wird das Signal ausgegeben, wenn die Animation abgeschlossen ist.

Hinweis: Der entsprechende Handler ist onReturnedToBounds.

Siehe auch returnDuration und returnToBounds().


Dokumentation der Methode

bool returnToBounds()

Setzt die abgefangene Eigenschaft auf einen Wert zwischen minimum und maximum zurück, so dass 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 der Grenzen lag.

Siehe auch returnedToBounds.


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