Тип QML BoundaryRule
Определяет ограничение на диапазон значений, которые могут быть установлены для числового свойства. Подробнее...
| Заявление об импорте: | import Qt.labs.animation |
| С момента: | Qt 5.14 |
Свойства
- currentOvershoot : qreal
- easing : qreal
- enabled : bool
- maximum : qreal
- maximumOvershoot : qreal
- minimum : qreal
- minimumOvershoot : qreal
- overshootFilter : перечисление
- overshootScale : qreal
- peakOvershoot : qreal
- returnDuration : int
Методы
- bool returnToBounds()
Подробное описание
BoundaryRule определяет диапазон значений, которые может принимать определенное свойство. При попытке установить значение, выходящее за пределы диапазона, применяется «сопротивление» с помощью кривой сглаживания.
Например, следующая BoundaryRule предотвращает перемещение Rectangle DragHandler слишком далеко:
import QtQuick 2.14
import Qt.labs.animation 1.0
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, Пример поведения и Qt QML.
Документация по свойствам
currentOvershoot : qreal
Это свойство содержит величину, на которую последнее установленное значение захваченного свойства превышает maximum или меньше, чем minimum.
Положительное значение, если значение свойства превышает maximum, отрицательное, если значение свойства меньше minimum, или 0, если значение свойства находится в пределах обоих границ.
easing : qreal
Это свойство содержит кривую сглаживания, которая должна применяться в режиме превышения (когда ограничение minimum или maximum нарушается, а значение всё ещё находится в соответствующем диапазоне превышения).
По умолчанию кривая сглаживания — QEasingCurve::OutQuad.
enabled : bool
Это свойство определяет, будет ли правило применяться при изменении значения отслеживаемого свойства.
По умолчанию, BoundaryRule включён.
maximum : qreal
Это свойство содержит наибольшее неограниченное значение, которое может принимать свойство. Если свойству присваивается большее значение, оно ограничивается с помощью easing и maximumOvershoot.
По умолчанию 1.
maximumOvershoot : qreal
Это свойство содержит величину, на которую свойство может превышать maximum. Всякий раз, когда значение больше maximum и меньше maximum + maximumOvershoot, оно ограничивается кривой сглаживания easing. Когда значение пытается превысить maximum + maximumOvershoot, происходит жёсткая остановка.
По умолчанию 0.
minimum : qreal
Это свойство содержит наименьшее неограниченное значение, которое может принимать свойство. Если свойству присваивается меньшее значение, оно ограничивается с помощью easing и minimumOvershoot.
По умолчанию 0.
minimumOvershoot : qreal
Это свойство содержит величину, на которую свойство может быть меньше minimum. Всякий раз, когда значение меньше minimum и больше minimum - minimumOvershoot, оно ограничивается кривой сглаживания easing. Когда значение пытается опуститься ниже minimum - minimumOvershoots, происходит жёсткая остановка.
По умолчанию 0.
overshootFilter : перечисление
Это свойство определяет агрегационную функцию, которая будет применяться к значению захваченного свойства.
Если оно установлено в BoundaryRule.None (по умолчанию), захваченное свойство будет содержать значение, превышение которого ограничено currentOvershoot. Если оно установлено в BoundaryRule.Peak, захваченное свойство будет содержать значение, превышение которого ограничено peakOvershoot.
overshootScale : qreal
Это свойство содержит величину, на которую easing масштабируется во время превышения. Например, если Item ограничен перемещением более чем на 100 пикселей за пределами определённого предела, и пользователь (с помощью некоторого Input Handler) пытается переместить его на 100 пикселей за предел, если overshootScale установлен в 1, пользователь преуспеет: единственный эффект кривой сглаживания — изменение скорости перемещения объекта от overshoot 0 до overshoot 100. Но если он установлен в 0,5, BoundaryRule обеспечивает сопротивление, так что когда пользователь пытается переместить на 100 пикселей, Item переместится только на 50 пикселей; и кривая сглаживания модулирует скорость перемещения, так что она может двигаться синхронно с попыткой перемещения пользователя в начале, а затем замедляется, в зависимости от формы кривой сглаживания.
По умолчанию 0,5.
peakOvershoot : qreal
Это свойство содержит наибольшее положительное или наименьшее отрицательное значение currentOvershoot, которое наблюдалось до вызова returnToBounds()
Это может быть полезно, когда известно, что значение захваченного свойства колеблется, и вы хотите найти и отреагировать на максимальную величину превышения, а не на колебания.
См. также overshootFilter.
returnDuration : int
Это свойство содержит количество времени в миллисекундах, которое займёт returnToBounds() для возврата целевого свойства к ближайшей границе. Если оно установлено в 0, returnToBounds() установит свойство немедленно, а не создаст задание анимации.
По умолчанию 100 мс.
Документация по методам
bool returnToBounds()
Возвращает захваченное свойство к значению между minimum и maximum, так что currentOvershoot и peakOvershoot оба равны нулю. Это будет анимировано, если returnDuration больше нуля.
Возвращает true, если значение необходимо было скорректировать, или false, если оно уже находилось в пределах границ.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qml-qt-labs-animation-boundaryrule.html