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からオーバーシュート100に移動する速度を変更することである。しかし、これが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()

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

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

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.