Тип QML Animator
Является основой всех анимирующих элементов QML. Подробнее...
| Оператор импорта: | import QtQuick 2.15 |
| С момента: | Qt 5.2 |
| Наследует: | |
| Наследуется от: | OpacityAnimator, RotationAnimator, ScaleAnimator, UniformAnimator, XAnimator и YAnimator |
Свойства
- duration : int
-
easing
- easing.amplitude : real
- easing.bezierCurve : list<real>
- easing.overshoot : real
- easing.period : real
- easing.type : перечисление
- from : real
- target : QtQuick::Item
- to : real
Подробное описание
Типы Animator — это особый тип анимации, который работает непосредственно с графическим деревом сцены Qt Quick, а не с объектами QML и их свойствами, как это делают обычные типы анимации. Это дает преимущество, что анимации на основе Animator могут анимировать на потоке отрисовки графического дерева сцены, даже если поток пользовательского интерфейса заблокирован.
Значение свойства QML будет обновлено после завершения анимации. Свойство не обновляется во время выполнения анимации.
Типы Animator можно использовать так же, как и любой другой тип Animation.
Rectangle {
id: mixBox
width: 50
height: 50
ParallelAnimation {
ColorAnimation {
target: mixBox
property: "color"
from: "forestgreen"
to: "lightsteelblue";
duration: 1000
}
ScaleAnimator {
target: mixBox
from: 2
to: 1
duration: 1000
}
running: true
}
} Если все под-анимации ParallelAnimation и SequentialAnimation являются типами Animator, ParallelAnimation и SequentialAnimation также будут обрабатываться как Animator и выполняться в потоке отрисовки графического дерева сцены, когда это возможно.
Типы Animator могут использоваться для анимации во время переходов, но они не поддерживают свойство reversible.
Тип Animator не может быть использован напрямую в файле QML. Он существует для предоставления набора общих свойств и методов, доступных во всех других типах аниматоров, которые наследуют от него. Попытка использовать тип Animator напрямую приведет к ошибке.
Документация по свойствам
duration : int
Это свойство хранит продолжительность анимации в миллисекундах.
Значение по умолчанию — 250.
easing.amplitude : real
Указывает кривую сглаживания, используемую для анимации
Для указания кривой сглаживания необходимо указать по крайней мере тип. Для некоторых кривых также можно указать амплитуду, период и/или перескок (более подробные сведения приведены после таблицы). Кривая сглаживания по умолчанию — Easing.Linear.
PropertyAnimation { properties: "y";
easing.type: Easing.InOutElastic;
easing.amplitude: 2.0;
easing.period: 1.5 } Доступные типы:
Easing.Linear |
Кривая сглаживания для линейной (t) функции: скорость постоянна. | |
Easing.InQuad |
Кривая сглаживания для квадратичной (t^2) функции: ускорение от нулевой скорости. | |
Easing.OutQuad |
Кривая сглаживания для квадратичной (t^2) функции: замедление до нулевой скорости. | |
Easing.InOutQuad |
Кривая сглаживания для квадратичной (t^2) функции: ускорение до середины, затем замедление. | |
Easing.OutInQuad |
Кривая сглаживания для квадратичной (t^2) функции: замедление до середины, затем ускорение. | |
Easing.InCubic |
Кривая сглаживания для кубической (t^3) функции: ускорение от нулевой скорости. | |
Easing.OutCubic |
Кривая сглаживания для кубической (t^3) функции: замедление до нулевой скорости. | |
Easing.InOutCubic |
Кривая сглаживания для кубической (t^3) функции: ускорение до середины, затем замедление. | |
Easing.OutInCubic |
Кривая сглаживания для кубической (t^3) функции: замедление до середины, затем ускорение. | |
Easing.InQuart |
Кривая сглаживания для четвёртой степени (t^4) функции: ускорение от нулевой скорости. | |
Easing.OutQuart |
Кривая сглаживания для четвёртой степени (t^4) функции: замедление до нулевой скорости. | |
Easing.InOutQuart |
Кривая сглаживания для четвёртой степени (t^4) функции: ускорение до середины, затем замедление. | |
Easing.OutInQuart |
Кривая сглаживания для четвёртой степени (t^4) функции: замедление до середины, затем ускорение. | |
Easing.InQuint |
Кривая сглаживания для пятой степени (t^5) функции: ускорение от нулевой скорости. | |
Easing.OutQuint |
Кривая сглаживания для пятой степени (t^5) функции: замедление до нулевой скорости. | |
Easing.InOutQuint |
Кривая сглаживания для пятой степени (t^5) функции: ускорение до середины, затем замедление. | |
Easing.OutInQuint |
Кривая сглаживания для пятой степени (t^5) функции: замедление до середины, затем ускорение. | |
Easing.InSine |
Кривая сглаживания для синусоидальной (sin(t)) функции: ускорение от нулевой скорости. | |
Easing.OutSine |
Кривая сглаживания для синусоидальной (sin(t)) функции: замедление до нулевой скорости. | |
Easing.InOutSine |
Кривая сглаживания для синусоидальной (sin(t)) функции: ускорение до середины, затем замедление. | |
Easing.OutInSine |
Кривая сглаживания для синусоидальной (sin(t)) функции: замедление до середины, затем ускорение. | |
Easing.InExpo |
Кривая сглаживания для экспоненциальной (2^t) функции: ускорение от нулевой скорости. | |
Easing.OutExpo |
Кривая сглаживания для экспоненциальной (2^t) функции: замедление до нулевой скорости. | |
Easing.InOutExpo |
Кривая сглаживания для экспоненциальной (2^t) функции: ускорение до середины, затем замедление. | |
Easing.OutInExpo |
Кривая сглаживания для экспоненциальной (2^t) функции: замедление до середины, затем ускорение. | |
Easing.InCirc |
Кривая сглаживания для круговой (sqrt(1-t^2)) функции: ускорение от нулевой скорости. | |
Easing.OutCirc |
Кривая сглаживания для круговой (sqrt(1-t^2)) функции: замедление до нулевой скорости. | |
Easing.InOutCirc |
Кривая сглаживания для круговой (sqrt(1-t^2)) функции: ускорение до середины, затем замедление. | |
Easing.OutInCirc |
Кривая сглаживания для круговой (sqrt(1-t^2)) функции: замедление до середины, затем ускорение. | |
Easing.InElastic |
Кривая сглаживания для упругой (экспоненциально затухающая синусоида) функции: ускорение от нулевой скорости. Пиковое значение амплитуды можно установить с помощью параметра amplitude, а период затухания - параметром period. | |
Easing.OutElastic |
Кривая сглаживания для упругой (экспоненциально затухающая синусоида) функции: замедление до нулевой скорости. Пиковое значение амплитуды можно установить с помощью параметра amplitude, а период затухания - параметром period. | |
Easing.InOutElastic |
Кривая сглаживания для упругой (экспоненциально затухающая синусоида) функции: ускорение до середины, затем замедление. | |
Easing.OutInElastic |
Кривая сглаживания для упругой (экспоненциально затухающая синусоида) функции: замедление до середины, затем ускорение. | |
Easing.InBack |
Кривая сглаживания для обратного (перескочившей кубической функции: (s+1)*t^3 - s*t^2) входящего сглаживания: ускорение от нулевой скорости. | |
Easing.OutBack |
Кривая сглаживания для обратного (перескочившей кубической функции: (s+1)*t^3 - s*t^2) исходящего сглаживания: замедление до нулевой скорости. | |
Easing.InOutBack |
Кривая сглаживания для обратного (перескочившей кубической функции: (s+1)*t^3 - s*t^2) входящего/исходящего сглаживания: ускорение до середины, затем замедление. | |
Easing.OutInBack |
Кривая сглаживания для обратного (перескочившей кубической функции: (s+1)*t^3 - s*t^2) исходящего/входящего сглаживания: замедление до середины, затем ускорение. | |
Easing.InBounce |
Кривая сглаживания для отскока (экспоненциально затухающего параболического отскока) функции: ускорение от нулевой скорости. | |
Easing.OutBounce |
Кривая сглаживания для отскока (экспоненциально затухающего параболического отскока) функции: замедление до нулевой скорости. | |
Easing.InOutBounce |
Кривая сглаживания для отскока (экспоненциально затухающего параболического отскока) функции входящего/исходящего сглаживания: ускорение до середины, затем замедление. | |
Easing.OutInBounce |
Кривая сглаживания для отскока (экспоненциально затухающего параболического отскока) функции исходящего/входящего сглаживания: замедление до середины, затем ускорение. | |
Easing.Bezier |
Пользовательская кривая сглаживания, определённая свойством easing.bezierCurve. |
easing.amplitude применимо только для кривых отскока и упругости (кривые типа Easing.InBounce, Easing.OutBounce, Easing.InOutBounce, Easing.OutInBounce, Easing.InElastic, Easing.OutElastic, Easing.InOutElastic или Easing.OutInElastic).
easing.overshoot применимо только если easing.type это: Easing.InBack, Easing.OutBack, Easing.InOutBack или Easing.OutInBack.
easing.period применимо только если easing.type это: Easing.InElastic, Easing.OutElastic, Easing.InOutElastic или Easing.OutInElastic.
easing.bezierCurve применимо только если easing.type это: Easing.Bezier. Это свойство представляет список<вещественное> содержащий группы из трёх точек, определяющие кривую от 0,0 до 1,1 - контрольная точка 1, контрольная точка 2, конечная точка: [cx1, cy1, cx2, cy2, endx, endy, ...]. Последняя точка должна быть 1,1.
См. Кривые сглаживания для демонстрации различных настроек сглаживания.
from : вещественное
Это свойство содержит начальное значение для анимации.
Если Animator определен в рамках Перехода или Поведения, это значение по умолчанию - значение, определенное в начальном состоянии Перехода или текущее значение свойства в момент запуска Поведения.
См. также Анимация и переходы в Qt Quick.
target : QtQuick::Item
Это свойство содержит целевой элемент аниматора.
Примечание: Цели аниматора должны быть типами, основанными на элементе Item.
to : вещественное
Это свойство содержит конечное значение для анимации.
Если Animator определен в рамках Перехода или Поведения, это значение по умолчанию - значение, определенное в конечном состоянии Перехода или значение изменения свойства, которое запустило Поведение.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qml-qtquick-animator.html