このページでは

BoundaryRule QML Type

数値プロパティに設定できる値の範囲の制限を定義します。詳細...

Import Statement: import Qt.labs.animation

プロパティ

信号

方法

詳細説明

BoundaryRuleは、特定のプロパティが持つことを許される値の範囲を定義する。範囲外の値が設定されると、イージングカーブによって「抵抗」が適用されます。

例えば、次の BoundaryRule は、DragHandler が Rectangle をドラッグしすぎるのを防ぎます:

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

なお、1つのプロパティに複数のBoundaryRuleを割り当てることはできません。

Qt Quick のアニメーションとトランジションビヘイビア例も参照してください Qt QmlおよびQt Quick Examples - Pointer Handlers を参照してください。

プロパティのドキュメント

currentOvershoot : real

このプロパティは、インターセプトされたプロパティの直近の設定値が、maximum を超えるか、minimum を下回るかの量を保持する。

プロパティ値がmaximum を超える場合は正の値、minimum を下回る場合は負の値となり、プロパティ値が両方の境界内にある場合は0となる。

easing : enumeration

このプロパティは、オーバーシュートモードで適用されるイージングカーブを保持します(minimum またはmaximum 制約に違反するたびに、値がまだそれぞれのオーバーシュート範囲内にある間)。

デフォルトのイージングカーブはQEasingCurve::OutQuad です。

enabled : bool

このプロパティは、追跡されるプロパティの値が変更されたときに、ルールが実施されるかどうかを保持する。

デフォルトでは、BoundaryRule が有効です。

maximum : real

このプロパティは、そのプロパティが持つことのできる制約のない最大値を保持する。このプロパティがより大きな値に設定されると、easingmaximumOvershoot によって制約されます。

デフォルトは1 です。

maximumOvershoot : real

このプロパティは、プロパティがmaximum を超えて許容される量を保持する。値がmaximum より大きく、maximum + maximumOvershoot より小さいときは常に、easing カーブによって制約される。値がmaximum + maximumOvershoot を超えようとすると、ハードストップがかかる。

デフォルトは0である。

minimum : real

このプロパティは、そのプロパティが持つことのできる制約のない最小値を保持する。このプロパティがより小さい値に設定された場合、easingminimumOvershoot によって制約されます。

デフォルトは0 です。

minimumOvershoot : real

このプロパティは、プロパティがminimum よりも小さいことを許容される量を保持する。値がminimum よりも小さく、minimum - minimumOvershoot よりも大きいときは常に、easing カーブによって制約される。値がminimum - minimumOvershoots を下回ろうとすると、ハードストップがかかります。

デフォルトは0 です。

overshootFilter : enumeration

このプロパティは、インターセプトされたプロパティ値に適用される集約関数を指定する。

これがBoundaryRule.None (デフォルト)に設定されている場合、インターセプトされたプロパティは、オーバーシュートがcurrentOvershoot に制限された値を保持します。 これがBoundaryRule.Peak に設定されている場合、インターセプトされたプロパティは、オーバーシュートがpeakOvershoot に制限された値を保持します。

overshootScale : real

このプロパティは、オーバーシュート状態の間にeasing がスケーリングされる量を保持する。例えば、アイテムがある制限を超えて100ピクセル以上移動することが制限されており、ユーザが(入力ハンドラによって)制限を越えて100ピクセルドラッグしようとしている場合、overshootScaleが1に設定されていれば、ユーザは成功する。しかし、これが0.5に設定されている場合、BoundaryRule 、ユーザーが100ピクセル移動しようとすると、アイテムは50ピクセルしか移動しないような抵抗を提供します。また、イージングカーブは、最初はユーザーが移動しようとしたのと同期して移動し、その後、イージングカーブの形状に応じて遅くなるように、移動速度を調節します。

デフォルトは0.5です。

peakOvershoot : real

このプロパティは、returnToBounds()が呼び出されるまで、currentOvershoot の最も正の値または最も負の値を保持する。

これは、インターセプトされたプロパティの値が変動することが分かっていて、その変動ではなくオーバーシュートの最大値を見つけて対応したい場合に便利です。

overshootFilterも参照してください

returnDuration : int

このプロパティは、returnToBounds ()がターゲット・プロパティを最も近い境界に戻すのに要する時間をミリ秒単位で保持します。このプロパティを 0 に設定すると、returnToBounds() はアニメーション・ジョブを作成するのではなく、プロパティを直ちに設定します。

デフォルトは 100 ミリ秒です。

シグナル・ドキュメント

returnedToBounds()

このシグナルは、maximum またはminimum の制約に違反した後、currentOvershoot が再び0 に戻るときに発せられる。リターンがアニメーションの場合、アニメーションが完了すると、このシグナルが発せられます。

注: 対応するハンドラはonReturnedToBounds です。

returnDuration およびreturnToBounds()も参照してください

メソッド・ドキュメント

bool returnToBounds()

currentOvershootpeakOvershoot がともにゼロであるような、minimummaximum の間の値にインターセプトされたプロパティを返す。returnDuration がゼロより大きい場合、これはアニメーションになる。

値の調整が必要な場合はtrueを返し、すでに範囲内にある場合はfalseを返します。

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.