Spec-Zone.ru › Qt 6.1

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

Это свойство содержит наибольшее неограниченное значение, которое свойство может иметь. Если свойство установлено на большее значение, оно будет ограничено с помощью easing и maximumOvershoot.

Значение по умолчанию — 1.

maximumOvershoot : qreal

Это свойство содержит величину, на которую свойство может превышать maximum. В ситуациях, когда значение больше maximum и меньше maximum + maximumOvershoot, оно ограничивается кривой сглаживания. Когда значение пытается превысить maximum + maximumOvershoot, происходит жёсткое ограничение.

Значение по умолчанию — 0.

minimum : qreal

Это свойство содержит наименьшее неограниченное значение, которое свойство может иметь. Если свойство установлено на меньшее значение, оно будет ограничено с помощью easing и 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.1/qml-qt-labs-animation-boundaryrule.html

Spec-Zone.ru

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