이 페이지에서

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

한 속성에 할당된 BoundaryRule은 하나만 있을 수 있습니다.

참조: Qt Quick 의 애니메이션 및 전환, Behavior 예제, Qt Qml, 그리고 Qt Quick 예제 - 포인터 핸들러를 참조하십시오.

속성 설명서

currentOvershoot : real

이 속성은 가로챈 속성의 가장 최근에 설정된 값이 maximum 보다 크거나 minimum 보다 작은 경우, 그 차이를 나타냅니다.

속성 값이 maximum 보다 크면 양수, minimum 보다 작으면 음수, 두 경계 값 사이에 있으면 0이 됩니다.

easing : enumeration

이 속성은 오버슈트 모드에서 적용될 이징 곡선을 지정합니다( minimum 또는 maximum 제약 조건이 위반되었을 때, 값이 여전히 해당 오버슈트 범위 내에 있는 경우).

기본 이징 곡선은 QEasingCurve::OutQuad 입니다.

enabled : bool

이 속성은 추적 대상 속성의 값이 변경될 때 해당 규칙이 적용될지 여부를 결정합니다.

기본적으로 ' BoundaryRule '가 활성화되어 있습니다.

maximum : real

이 속성은 해당 속성이 가질 수 있는 가장 큰 제약 없는 값을 저장합니다. 속성이 이보다 더 큰 값으로 설정되면, easing 및 maximumOvershoot 에 의해 제약이 적용됩니다.

기본값은 1 입니다.

maximumOvershoot : real

이 속성은 해당 속성이 maximum 보다 초과할 수 있는 최대값을 지정합니다. 값이 maximum 보다 크고 maximum + maximumOvershoot 보다 작을 때마다, easing 곡선에 의해 제약받습니다. 값이 maximum + maximumOvershoot 를 초과하려고 할 경우 강제 중지가 발생합니다.

기본값은 0입니다.

minimum : real

이 속성은 해당 속성이 가질 수 있는 가장 작은 제약 조건이 없는 값을 저장합니다. 속성이 이보다 작은 값으로 설정되면, easing 및 minimumOvershoot 에 의해 제약이 적용됩니다.

기본값은 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

currentOvershoot 이 속성은 returnToBounds 에서 관측된 값 중 가장 큰 양수 또는 가장 큰 음수 값을, ()이 호출될 때까지 저장합니다.

이는 가로챈 속성 값이 변동하는 것으로 알려져 있고, 단순한 변동보다는 최대 오버슈트량을 파악하여 이에 대응하고자 할 때 유용할 수 있습니다.

overshootFilter도 참조하십시오 .

returnDuration : int

이 속성은 ` returnToBounds()` 함수가 대상 속성을 가장 가까운 경계에 맞춰 반환하는 데 걸리는 시간을 밀리초 단위로 지정합니다. 이 값을 0으로 설정하면, ` returnToBounds()` 함수는 애니메이션 작업을 생성하지 않고 해당 속성을 즉시 설정합니다.

기본값은 100 ms입니다.

Signal 문서

returnedToBounds()

이 신호는 maximum 또는 minimum 제약 조건이 위반된 후, currentOvershoot 가 다시 0 로 돌아갈 때 발생합니다. 복귀 과정이 애니메이션으로 처리되는 경우, 애니메이션이 완료되면 이 신호가 발생합니다.

참고: 해당 핸들러는 onReturnedToBounds 입니다.

returnDuration 및 returnToBounds()도 참조하십시오 .

메서드 문서

bool returnToBounds()

차단된 속성을 minimum 과 maximum 사이의 값으로 반환하며, 이때 currentOvershoot 와 peakOvershoot 이 모두 0이 되도록 합니다. returnDuration 가 0보다 크면 이 값이 애니메이션으로 적용됩니다.

조정해야 할 값인 경우 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.