Тип QML BoundaryRule
Определяет ограничение на диапазон значений, которые могут быть установлены для числового свойства. Подробнее...
| Заявление об импорте: | import Qt.labs.animation 1.0 |
| С момента: | 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
Это свойство содержит наибольшее неограниченное значение, которое свойство может иметь. Если свойство установлено на большее значение, оно будет ограничено сглаживанием и maximumOvershoot.
По умолчанию 1.
maximumOvershoot : qreal
Это свойство содержит величину, на которую свойство может быть больше maximum. Всякий раз, когда значение больше maximum и меньше maximum + maximumOvershoot, оно ограничено кривой сглаживания. Когда значение пытается превысить maximum + maximumOvershoot, есть жесткая остановка.
По умолчанию 0.
minimum : qreal
Это свойство содержит наименьшее неограниченное значение, которое свойство может иметь. Если свойство установлено на меньшее значение, оно будет ограничено сглаживанием и minimumOvershoot.
По умолчанию 0.
minimumOvershoot : qreal
Это свойство содержит величину, на которую свойство может быть меньше minimum. Всякий раз, когда значение меньше minimum и больше minimum - minimumOvershoot, оно ограничено кривой сглаживания. Когда значение пытается опуститься ниже minimum - minimumOvershoots, есть жесткая остановка.
По умолчанию 0.
overshootFilter : перечисление
Это свойство задает функцию агрегации, которая будет применена к перехваченному значению свойства.
Если это значение установлено на BoundaryRule.None (по умолчанию), перехваченное свойство будет содержать значение, перехват которого ограничен currentOvershoot. Если это значение установлено на BoundaryRule.Peak, перехваченное свойство будет содержать значение, перехват которого ограничен peakOvershoot.
overshootScale : qreal
Это свойство содержит величину, на которую сглаживание масштабируется во время условия перехвата. Например, если элемент ограничен от перемещения более чем на 100 пикселей за некоторым пределом, и пользователь (с помощью некоторого обработчика ввода) пытается переместить его на 100 пикселей за предел, если overshootScale установлен на 1, пользователь преуспеет: единственный эффект кривой сглаживания — изменение скорости перемещения элемента от перехвата 0 до перехвата 100. Но если он установлен на 0,5, BoundaryRule обеспечивает сопротивление таким образом, что когда пользователь пытается переместить на 100 пикселей, элемент переместится только на 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-5.15/qml-qt-labs-animation-boundaryrule.html