Sur cette page

BoundaryRule QML Type

Définit une restriction sur l'intervalle de valeurs pouvant être attribuées à une propriété numérique. En savoir plus…

Import Statement: import Qt.labs.animation

Propriétés

Signaux

Méthodes

Description détaillée

Une règle de limite (BoundaryRule) définit la plage de valeurs autorisées pour une propriété donnée. Lorsqu'une valeur hors plage serait sur le point d'être définie, elle applique une « résistance » via une courbe d'accélération.

Par exemple, la BoundaryRule 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 se voir attribuer plus d’une règle de limite.

Voir également Animation et transitions dans Qt Quick, Exemple de comportement, Qt Qmlet Exemples d’Qt Quick – Gestionnaires de pointeur.

Documentation sur les propriétés

currentOvershoot : real

Cette propriété contient la différence entre la dernière valeur définie pour la propriété interceptée et la valeur maximum, ou la différence entre cette dernière et la valeur minimum.

Elle est positive si la valeur de la propriété dépasse maximum, négative si elle est inférieure à minimum, ou égale à 0 si elle se situe entre ces deux limites.

easing : enumeration

Cette propriété définit la courbe d'accélération à appliquer en mode « overshoot » (lorsque la contrainte « minimum » ou « maximum » est enfreinte, tant que la valeur reste dans la plage d'overshoot correspondante).

La courbe d'accélération par défaut est QEasingCurve::OutQuad.

enabled : bool

Cette propriété détermine si la règle sera appliquée lorsque la propriété suivie changera de valeur.

Par défaut, l'option « BoundaryRule » est activée.

maximum : real

Cette propriété contient la plus grande valeur non contrainte qu'elle soit autorisée à prendre. Si la propriété est définie sur une valeur supérieure, elle sera limitée par easing et maximumOvershoot.

La valeur par défaut est 1.

maximumOvershoot : real

Cette propriété définit la valeur maximale autorisée pour la propriété par rapport à 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, un arrêt forcé se produit.

La valeur par défaut est 0.

minimum : real

Cette propriété contient la plus petite valeur non contrainte qu'elle soit autorisée à prendre. Si la propriété est définie sur une valeur inférieure, elle sera contrainte par easing et minimumOvershoot.

La valeur par défaut est 0.

minimumOvershoot : real

Cette propriété détermine la valeur minimale autorisée pour la propriété par rapport à 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, un arrêt brutal se produit.

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 elle est définie sur « BoundaryRule.None » (valeur par défaut), la propriété interceptée prendra une valeur dont le dépassement est limité à « currentOvershoot ». Si elle est définie sur « BoundaryRule.Peak », la propriété interceptée prendra une valeur dont le dépassement est limité à « peakOvershoot ».

overshootScale : real

Cette propriété définit la valeur de mise à l'échelle de l'easing e lors d'un 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 (à l’aide d’un gestionnaire d’entrée) tente de le faire glisser de 100 pixels au-delà de cette limite, si overshootScale est défini sur 1, l’utilisateur y parviendra : le seul effet de la courbe d’accélération/décélération est de modifier la vitesse à laquelle l’élément se déplace entre le dépassement 0 et le dépassement 100. Mais s’il est défini sur 0,5, l’ BoundaryRule e offre une résistance telle que, lorsque l’utilisateur tente de déplacer l’élément de 100 pixels, celui-ci ne se déplacera que de 50 pixels ; et la courbe d’accélération module la vitesse de déplacement de telle sorte que l’élément puisse se déplacer en synchronisation avec le mouvement tenté par l’utilisateur au début, puis ralentisse, en fonction de la forme de la courbe d’accélération.

La valeur par défaut est 0,5.

peakOvershoot : real

Cette propriété contient la valeur la plus positive ou la plus négative de « currentOvershoot » qui ait été observée, jusqu’à ce que la fonction « returnToBounds() » soit appelée.

Cela peut s'avérer utile lorsque l'on sait que la valeur de la propriété interceptée est sujette à des fluctuations et que l'on souhaite détecter et réagir à l'amplitude maximale du dépassement plutôt qu'aux fluctuations elles-mêmes.

Voir également overshootFilter.

returnDuration : int

Cette propriété indique le temps, en millisecondes, que prendra la fonction ` returnToBounds()` pour ramener la propriété cible à la valeur la plus proche de la limite définie. Si elle est définie sur 0, la fonction ` returnToBounds()` définira immédiatement la propriété au lieu de créer une tâche d'animation.

La valeur par défaut est de 100 ms.

Documentation sur les signaux

returnedToBounds()

Ce signal est émis lorsque currentOvershoot revient à 0, après qu’une contrainte de type maximum ou minimum a été violée. Si le retour est animé, le signal est émis une fois l’animation 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 avec une valeur comprise entre minimum et maximum, de sorte que currentOvershoot et peakOvershoot soient toutes deux égales à zéro. Une animation sera générée si returnDuration est supérieur à zéro.

Renvoie « true » si la valeur devait être ajustée, ou « false » si elle se situait déjà dans les limites.

Voir également 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.