Spec-Zone.ru › Qt 6.0

Тип 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-6.0/qml-qt-labs-animation-boundaryrule.html

Spec-Zone.ru

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