BoundaryRule QML Type
数値プロパティに設定できる値の範囲の制限を定義します。詳細...
Import Statement: | import Qt.labs.animation |
プロパティ
- currentOvershoot : real
- easing : enumeration
- enabled : bool
- maximum : real
- maximumOvershoot : real
- minimum : real
- minimumOvershoot : real
- overshootFilter : enumeration
- overshootScale : real
- peakOvershoot : real
- returnDuration : int
信号
方法
- bool returnToBounds()
詳細説明
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 |
easing : enumeration |
このプロパティは、オーバーシュート・モード(minimum またはmaximum 制約に違反するたびに、値がそれぞれのオーバーシュート範囲内にある間)に適用されるイージング・カーブを保持します。
デフォルトのイージング曲線はQEasingCurve::OutQuad です。
enabled : bool |
このプロパティは、トラッキングされたプロパティの値が変化したときに、ルールを適用するかどうかを保持します。
デフォルトではBoundaryRule が有効である。
maximum : real |
このプロパティは、プロパティが持つことを許される、制約のない最大値を保持する。プロパティをより大きな値に設定すると、easing とmaximumOvershoot によって制約されます。
デフォルトは1
である。
maximumOvershoot : real |
minimum : real |
このプロパティは、プロパティが持つことができる制約のない最小値を保持する。これより小さい値を設定すると、easing とminimumOvershoot によって制約されます。
デフォルトは0
である。
minimumOvershoot : real |
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() |
インターセプトされたプロパティをminimum とmaximum の間の値(currentOvershoot とpeakOvershoot の両方がゼロであるような値)に戻します。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.