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
- currentOvershoot : real
- easing : enumeration
- enabled : bool
- maximum : real
- maximumOvershoot : real
- minimum : real
- minimumOvershoot : real
- overshootFilter : enumeration
- overshootScale : real
- peakOvershoot : real
- returnDuration : int
Signale
Methoden
- bool returnToBounds()
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.
Dokumentation der Eigenschaft
currentOvershoot : real
Diese Eigenschaft enthält den Betrag, um den der zuletzt eingestellte 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 Überschwingungsmodus angewandt werden soll (immer dann, wenn die Beschränkung minimum oder maximum verletzt wird, während der Wert noch innerhalb des jeweiligen Überschwingungsbereichs liegt).
Die Standardanpassungskurve ist QEasingCurve::OutQuad.
enabled : bool
Diese Eigenschaft gibt an, 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 gibt an, wie viel 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, 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 gesetzt wird, wird sie durch easing und minimumOvershoot eingeschränkt.
Der Standardwert ist 0.
minimumOvershoot : real
Diese Eigenschaft gibt an, wie weit die Eigenschaft unter minimum liegen darf. Immer wenn der Wert kleiner als minimum und größer als minimum - minimumOvershoot ist, wird er durch die Kurve easing begrenzt. 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 diese Eigenschaft auf BoundaryRule.None (Standardeinstellung) gesetzt ist, enthält die abgefangene Eigenschaft einen Wert, dessen Überschreitung auf currentOvershoot begrenzt ist. Wenn diese Eigenschaft auf BoundaryRule.Peak gesetzt ist, enthält die abgefangene Eigenschaft einen Wert, dessen Überschreitung auf peakOvershoot begrenzt ist.
overshootScale : real
Diese Eigenschaft gibt den Betrag an, um den die easing während der Überschreitungsbedingung skaliert wird. Wenn zum Beispiel 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. Wenn der Wert jedoch auf 0,5 gesetzt ist, 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 Form der Entspannungskurve.
Der Standardwert ist 0,5.
peakOvershoot : real
Diese Eigenschaft speichert den positivsten bzw. negativsten Wert von currentOvershoot, der beobachtet 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ächstliegende Grenze zu setzen. 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 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 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, 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.
© 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.