Тип 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 предотвращает перемещение объекта 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.14/qml-qt-labs-animation-boundaryrule.html