Класс QGraphicsItemAnimation
Класс QGraphicsItemAnimation предоставляет простую поддержку анимации для QGraphicsItem. Подробнее...
| Заголовок: | #include <QGraphicsItemAnimation> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Наследует: | QObject |
Этот класс устарел. Он предоставляется для обеспечения работы старого исходного кода. Мы настоятельно рекомендуем не использовать его в новом коде.
Открытые функции
| QGraphicsItemAnimation(QObject *parent = nullptr) | |
| virtual | ~QGraphicsItemAnimation() |
| void | очистить() |
| qreal | горизонтальныйМасштабВ(qreal step) const |
| qreal | горизонтальноеСдвижениеВ(qreal step) const |
| QGraphicsItem * | элемент() const |
| QPointF | положениеВ(qreal step) const |
| QList<QPair<qreal, QPointF> > | списокПозиций() const |
| qreal | вращениеВ(qreal step) const |
| QList<QPair<qreal, qreal> > | списокВращений() const |
| QList<QPair<qreal, QPointF> > | списокМасштабов() const |
| void | установитьЭлемент(QGraphicsItem *item) |
| void | установитьПозициюВ(qreal step, const QPointF &point) |
| void | установитьВращениеВ(qreal step, qreal angle) |
| void | установитьМасштабВ(qreal step, qreal sx, qreal sy) |
| void | установитьСдвигВ(qreal step, qreal sh, qreal sv) |
| void | установитьЛиниюВремени(QTimeLine *timeLine) |
| void | установитьСмещениеВ(qreal step, qreal dx, qreal dy) |
| QList<QPair<qreal, QPointF> > | списокСдвигов() const |
| QTimeLine * | линияВремени() const |
| QTransform | преобразованиеВ(qreal step) const |
| QList<QPair<qreal, QPointF> > | списокСмещений() const |
| qreal | вертикальныйМасштабВ(qreal step) const |
| qreal | вертикальноеСдвижениеВ(qreal step) const |
| qreal | смещениеXВ(qreal step) const |
| qreal | смещениеYВ(qreal step) const |
Открытые слоты
| void | установитьШаг(qreal step) |
Защищенные функции
| virtual void | послеШагаАнимации(qreal step) |
| virtual void | передШагомАнимации(qreal step) |
Подробное описание
Класс QGraphicsItemAnimation анимирует QGraphicsItem. Вы можете планировать изменения матрицы преобразования элемента в указанные моменты. Класс QGraphicsItemAnimation имеет текущее значение шага. При изменении этого значения выполняются запланированные преобразования на этом шаге. Текущий шаг анимации устанавливается функцией setStep().
QGraphicsItemAnimation выполнит простую линейную интерполяцию между ближайшими смежными запланированными изменениями для расчета матрицы. Например, если вы установите положение элемента в значениях 0,0 и 1,0, анимация покажет движение элемента по прямой линии между этими позициями. То же самое относится к масштабированию и вращению.
Обычно этот класс используется с QTimeLine. Сигнал valueChanged() линии времени затем подключается к слоту setStep(). Например, вы можете настроить элемент для вращения, вызвав setRotationAt() для различных значений шага. Линия времени анимации устанавливается функцией setTimeLine().
Пример анимации с линией времени:
QGraphicsItem *ball = new QGraphicsEllipseItem(0, 0, 20, 20);
QTimeLine *timer = new QTimeLine(5000);
timer->setFrameRange(0, 100);
QGraphicsItemAnimation *animation = new QGraphicsItemAnimation;
animation->setItem(ball);
animation->setTimeLine(timer);
for (int i = 0; i < 200; ++i)
animation->setPosAt(i / 200.0, QPointF(i, i));
QGraphicsScene *scene = new QGraphicsScene;
scene->setSceneRect(0, 0, 250, 250);
scene->addItem(ball);
QGraphicsView *view = new QGraphicsView(scene);
view->show();
timer->start(); Обратите внимание, что шаги лежат между 0,0 и 1,0. Возможно, потребуется использовать setUpdateInterval(). Значение по умолчанию для интервала обновления составляет 40 мс. Запланированное преобразование нельзя удалить при установке, поэтому планирование нескольких преобразований одного типа (например, вращений) на одном шаге не рекомендуется.
См. также QTimeLine и Графический фреймворк.
Документация по функциям-членам
QGraphicsItemAnimation::QGraphicsItemAnimation(QObject *parent = nullptr)
Конструирует объект анимации с заданным parent.
[slot] void QGraphicsItemAnimation::установитьШаг(qreal step)
Устанавливает текущее значение step для анимации, вызывая выполнение преобразований, запланированных на этом шаге.
[virtual] QGraphicsItemAnimation::~QGraphicsItemAnimation()
Удаляет объект анимации.
[virtual protected] void QGraphicsItemAnimation::послеШагаАнимации(qreal step)
Этот метод предназначен для переопределения в подклассах, которым необходимо выполнить дополнительный код после того, как произошел новый шаг. Шаг анимации step предоставляется для использования в тех случаях, когда действие зависит от его значения.
[virtual protected] void QGraphicsItemAnimation::передШагомАнимации(qreal step)
Этот метод предназначен для переопределения подклассами, которым необходимо выполнить дополнительный код перед тем, как произойдет новый шаг. Шаг анимации step предоставляется для использования в тех случаях, когда действие зависит от его значения.
void QGraphicsItemAnimation::очистить()
Очищает запланированные преобразования, используемые для анимации, но сохраняет элемент и линию времени.
qreal QGraphicsItemAnimation::горизонтальныйМасштабВ(qreal step) const
Возвращает горизонтальный масштаб элемента в указанный момент step.
См. также setScaleAt().
qreal QGraphicsItemAnimation::horizontalShearAt(qreal step) const
Возвращает горизонтальное сдвижение элемента по заданному значению step.
См. также setShearAt().
QGraphicsItem *QGraphicsItemAnimation::item() const
Возвращает элемент, к которому применяется объект анимации.
См. также setItem().
QPointF QGraphicsItemAnimation::posAt(qreal step) const
Возвращает позицию элемента по заданному значению step.
См. также setPosAt().
QList<QPair<qreal, QPointF> > QGraphicsItemAnimation::posList() const
Возвращает все явно вставленные позиции.
См. также posAt() и setPosAt().
qreal QGraphicsItemAnimation::rotationAt(qreal step) const
Возвращает угол поворота элемента по заданному значению step.
См. также setRotationAt().
QList<QPair<qreal, qreal> > QGraphicsItemAnimation::rotationList() const
Возвращает все явно вставленные повороты.
См. также rotationAt() и setRotationAt().
QList<QPair<qreal, QPointF> > QGraphicsItemAnimation::scaleList() const
Возвращает все явно вставленные масштабирования.
См. также verticalScaleAt(), horizontalScaleAt() и setScaleAt().
void QGraphicsItemAnimation::setItem(QGraphicsItem *item)
Устанавливает указанный элемент item для использования в анимации.
См. также item().
void QGraphicsItemAnimation::setPosAt(qreal step, const QPointF &point)
Устанавливает позицию элемента по заданному значению step в указанную точку point.
См. также posAt().
void QGraphicsItemAnimation::setRotationAt(qreal step, qreal angle)
Устанавливает угол поворота элемента по заданному значению step на указанный угол angle.
См. также rotationAt().
void QGraphicsItemAnimation::setScaleAt(qreal step, qreal sx, qreal sy)
Устанавливает масштаб элемента по заданному значению step, используя горизонтальный и вертикальный коэффициенты масштабирования, заданные sx и sy.
См. также verticalScaleAt() и horizontalScaleAt().
void QGraphicsItemAnimation::setShearAt(qreal step, qreal sh, qreal sv)
Устанавливает сдвиг элемента по заданному значению step, используя горизонтальный и вертикальный коэффициенты сдвига, заданные sh и sv.
См. также verticalShearAt() и horizontalShearAt().
void QGraphicsItemAnimation::setTimeLine(QTimeLine *timeLine)
Устанавливает объект таймлайна, используемый для управления скоростью анимации, на указанный timeLine.
См. также timeLine().
void QGraphicsItemAnimation::setTranslationAt(qreal step, qreal dx, qreal dy)
Устанавливает смещение элемента по заданному значению step, используя горизонтальные и вертикальные координаты, заданные dx и dy.
См. также xTranslationAt() и yTranslationAt().
QList<QPair<qreal, QPointF> > QGraphicsItemAnimation::shearList() const
Возвращает все явно вставленные сдвиги.
См. также verticalShearAt(), horizontalShearAt() и setShearAt().
QTimeLine *QGraphicsItemAnimation::timeLine() const
Возвращает объект таймлайна, используемый для управления скоростью анимации.
См. также setTimeLine().
[since 5.14] QTransform QGraphicsItemAnimation::transformAt(qreal step) const
Возвращает преобразование, используемое для элемента по заданному значению step.
Эта функция была введена в Qt 5.14.
QList<QPair<qreal, QPointF> > QGraphicsItemAnimation::translationList() const
Возвращает все явно вставленные смещения.
См. также xTranslationAt(), yTranslationAt() и setTranslationAt().
qreal QGraphicsItemAnimation::verticalScaleAt(qreal step) const
Возвращает вертикальный масштаб элемента по заданному значению step.
См. также setScaleAt().
qreal QGraphicsItemAnimation::verticalShearAt(qreal step) const
Возвращает вертикальный сдвиг элемента по заданному значению step.
См. также setShearAt().
qreal QGraphicsItemAnimation::xTranslationAt(qreal step) const
Возвращает горизонтальное смещение элемента по заданному значению step.
См. также setTranslationAt().
qreal QGraphicsItemAnimation::yTranslationAt(qreal step) const
Возвращает вертикальное смещение элемента по заданному значению step.
См. также setTranslationAt().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qgraphicsitemanimation.html