Spec-Zone.ru › Qt 5.15

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

Spec-Zone.ru

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