Spec-Zone.ru › Qt 5.14

Тип 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API