Класс 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 |
- 31 открытых функция унаследованных от 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.
END_OF_DOCUMENT_MARKERКласс 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/archives/qt-5.6/qgraphicsitemanimation.html