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