Класс QGraphicsItemAnimation
Класс QGraphicsItemAnimation предоставляет простую поддержку анимации для QGraphicsItem. Подробнее...
| Заголовок: | #include <QGraphicsItemAnimation> |
| qmake: | QT += widgets |
| С момента: | Qt 4.2 |
| Наследует: | QObject |
Этот класс устарел. Он предоставляется для поддержки работы старого кода. Мы настоятельно рекомендуем не использовать его в новом коде.
Открытые функции
| QGraphicsItemAnimation(QObject *parent = Q_NULLPTR) | |
| virtual | ~QGraphicsItemAnimation() |
| void | clear() |
| qreal | horizontalScaleAt(qreal step) const |
| qreal | horizontalShearAt(qreal step) const |
| QGraphicsItem * | item() const |
| QMatrix | matrixAt(qreal step) const |
| QPointF | posAt(qreal step) const |
| QList<QPair<qreal, QPointF> > | posList() const |
| qreal | rotationAt(qreal step) const |
| QList<QPair<qreal, qreal> > | rotationList() const |
- 32 открытых функции унаследованные от QObject
Открытые слоты
| void | setStep(qreal step) |
- 1 открытый слот унаследованный от QObject
Защищенные функции
| virtual void | afterAnimationStep(qreal step) |
| virtual void | beforeAnimationStep(qreal step) |
- 9 защищенных функций унаследованных от QObject
Дополнительные унаследованные члены
- 1 свойство унаследованное от QObject
- 2 сигнала унаследованные от QObject
- 11 статических открытых членов унаследованных от QObject
Подробное описание
Класс QGraphicsItemAnimation предоставляет простую поддержку анимации для QGraphicsItem.
Класс 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 = Q_NULLPTR)
Создает объект анимации с заданным parent.
[virtual] QGraphicsItemAnimation::~QGraphicsItemAnimation()
Удаляет объект анимации.
[virtual protected] void QGraphicsItemAnimation::afterAnimationStep(qreal step)
Этот метод предназначен для переопределения в подклассах, которым необходимо выполнить дополнительный код после того, как произошел новый шаг. Шаг анимации step предоставляется для использования в тех случаях, когда действие зависит от его значения.
[virtual protected] void QGraphicsItemAnimation::beforeAnimationStep(qreal step)
Этот метод предназначен для переопределения подклассами, которым необходимо выполнить дополнительный код перед новым шагом. Шаг анимации step предоставляется для использования в тех случаях, когда действие зависит от его значения.
void QGraphicsItemAnimation::clear()
Очищает запланированные преобразования, используемые для анимации, но сохраняет элемент и таймлайн.
qreal QGraphicsItemAnimation::horizontalScaleAt(qreal step) const
Возвращает горизонтальный масштаб элемента по заданному значению step.
См. также setScaleAt().
qreal QGraphicsItemAnimation::horizontalShearAt(qreal step) const
Возвращает горизонтальное сдвижение элемента по заданному значению step.
См. также setShearAt().
QGraphicsItem *QGraphicsItemAnimation::item() const
Возвращает элемент, к которому применяется объект анимации.
См. также setItem().
QMatrix QGraphicsItemAnimation::matrixAt(qreal step) const
Возвращает матрицу, используемую для преобразования элемента по заданному значению step.
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().
[slot] void QGraphicsItemAnimation::setStep(qreal step)
Устанавливает текущее значение step для анимации, вызывая выполнение запланированных преобразований в этом шаге.
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().
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-5.9/qgraphicsitemanimation.html