BoundaryRule QML Type
Définit une restriction sur la plage de valeurs qui peut être définie sur une propriété numérique. Plus d'informations...
| Import Statement: | import Qt.labs.animation |
Propriétés
- currentOvershoot : real
- easing : enumeration
- enabled : bool
- maximum : real
- maximumOvershoot : real
- minimum : real
- minimumOvershoot : real
- overshootFilter : enumeration
- overshootScale : real
- peakOvershoot : real
- returnDuration : int
Signaux
Méthodes
- bool returnToBounds()
Description détaillée
Une BoundaryRule définit la plage de valeurs qu'une propriété particulière est autorisée à prendre. Lorsqu'une valeur hors plage serait autrement définie, elle applique une "résistance" par le biais d'une courbe d'assouplissement.
Par exemple, la règle suivante empêche DragHandler de faire glisser le rectangle trop loin :
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 } }
Notez qu'une propriété ne peut pas avoir plus d'une règle de délimitation assignée.
Voir également Animation et transitions dans Qt Quick, Exemple de comportement, Qt Qmlet Qt Quick Exemples - Gestionnaires de pointeurs.
Documentation sur les propriétés
currentOvershoot : real
Cette propriété contient le montant par lequel la dernière valeur définie de la propriété interceptée dépasse maximum ou est inférieure à minimum.
Elle est positive si la valeur du bien dépasse maximum, négative si la valeur du bien est inférieure à minimum, ou 0 si la valeur du bien se situe à l'intérieur des deux limites.
easing : enumeration
Cette propriété contient la courbe d'assouplissement à appliquer en mode dépassement (chaque fois que la contrainte minimum ou maximum est violée, alors que la valeur est toujours comprise dans la plage de dépassement respective).
La courbe d'assouplissement par défaut est QEasingCurve::OutQuad.
enabled : bool
Cette propriété indique si la règle doit être appliquée lorsque la valeur de la propriété suivie change.
Par défaut, BoundaryRule est activé.
maximum : real
Cette propriété contient la plus grande valeur non contrainte que la propriété est autorisée à avoir. Si la propriété est définie sur une valeur plus grande, elle sera contrainte par easing et maximumOvershoot.
La valeur par défaut est 1.
maximumOvershoot : real
Cette propriété contient le montant que la propriété est autorisée à dépasser maximum. Chaque fois que la valeur est supérieure à maximum et inférieure à maximum + maximumOvershoot, elle est contrainte par la courbe easing. Lorsque la valeur tente de dépasser maximum + maximumOvershoot, elle est stoppée net.
La valeur par défaut est 0.
minimum : real
Cette propriété contient la plus petite valeur non contrainte que la propriété est autorisée à avoir. Si la propriété est définie sur une valeur plus petite, elle sera contrainte par easing et minimumOvershoot.
La valeur par défaut est 0.
minimumOvershoot : real
Cette propriété contient le montant que la propriété est autorisée à être inférieure à minimum. Chaque fois que la valeur est inférieure à minimum et supérieure à minimum - minimumOvershoot, elle est contrainte par la courbe easing. Lorsque la valeur tente de descendre en dessous de minimum - minimumOvershoots, elle est stoppée net.
La valeur par défaut est 0.
overshootFilter : enumeration
Cette propriété spécifie la fonction d'agrégation qui sera appliquée à la valeur de la propriété interceptée.
Si cette propriété vaut BoundaryRule.None (valeur par défaut), la propriété interceptée contiendra une valeur dont le dépassement est limité à currentOvershoot. Si cette propriété vaut BoundaryRule.Peak, la propriété interceptée contiendra une valeur dont le dépassement est limité à peakOvershoot.
overshootScale : real
Cette propriété définit la valeur de l'échelle de easing pendant la condition de dépassement. Par exemple, si un élément ne peut pas se déplacer de plus de 100 pixels au-delà d'une certaine limite et que l'utilisateur (au moyen d'un gestionnaire d'entrée) essaie de le faire glisser de 100 pixels au-delà de la limite, si overshootScale est fixé à 1, l'utilisateur réussira : le seul effet de la courbe d'assouplissement est de modifier la vitesse à laquelle l'élément se déplace du dépassement 0 au dépassement 100. Mais si elle est fixée à 0,5, le site BoundaryRule offre une résistance telle que lorsque l'utilisateur tente de se déplacer de 100 pixels, l'élément ne se déplace que de 50 pixels ; et la courbe d'assouplissement module le taux de déplacement de sorte qu'il peut se déplacer en synchronisation avec la tentative de mouvement de l'utilisateur au début, puis ralentir, en fonction de la forme de la courbe d'assouplissement.
La valeur par défaut est 0,5.
peakOvershoot : real
Cette propriété conserve la valeur la plus positive ou la plus négative de currentOvershoot qui a été observée, jusqu'à ce que returnToBounds() soit appelé.
Cela peut être utile lorsque la valeur de la propriété interceptée est connue pour fluctuer, et que vous souhaitez trouver et réagir à la quantité maximale de dépassement plutôt qu'aux fluctuations.
Voir également overshootFilter.
returnDuration : int
Cette propriété indique le temps en millisecondes que returnToBounds() prendra pour ramener la propriété cible à la limite la plus proche. Si elle est définie sur 0, returnToBounds() définira la propriété immédiatement plutôt que de créer un travail d'animation.
La valeur par défaut est 100 ms.
Documentation sur les signaux
returnedToBounds()
Ce signal est émis lorsque currentOvershoot retourne à nouveau à 0, après que la contrainte maximum ou minimum a été violée. Si le retour est animé, le signal est émis lorsque l'animation est terminée.
Remarque : le gestionnaire correspondant est onReturnedToBounds.
Voir également returnDuration et returnToBounds().
Documentation de la méthode
bool returnToBounds()
Renvoie la propriété interceptée à une valeur comprise entre minimum et maximum, de telle sorte que currentOvershoot et peakOvershoot soient tous deux égaux à zéro. Ceci sera animé si returnDuration est supérieur à zéro.
Retourne true si la valeur doit être ajustée, ou false si elle est déjà dans les limites.
Voir aussi 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.