Spec-Zone.ru › Qt 6.0

Класс 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 clear()
qreal horizontalScaleAt(qreal step) const
qreal horizontalShearAt(qreal step) const
QGraphicsItem * item() const
QPointF posAt(qreal step) const
QList<QPair<qreal, QPointF> > posList() const
qreal rotationAt(qreal step) const
QList<QPair<qreal, qreal> > rotationList() const
QList<QPair<qreal, QPointF> > scaleList() const
void setItem(QGraphicsItem *item)
void setPosAt(qreal step, const QPointF &point)
void setRotationAt(qreal step, qreal angle)
void setScaleAt(qreal step, qreal sx, qreal sy)
void setShearAt(qreal step, qreal sh, qreal sv)
void setTimeLine(QTimeLine *timeLine)
void setTranslationAt(qreal step, qreal dx, qreal dy)
QList<QPair<qreal, QPointF> > shearList() const
QTimeLine * timeLine() const
QTransform transformAt(qreal step) const
QList<QPair<qreal, QPointF> > translationList() const
qreal verticalScaleAt(qreal step) const
qreal verticalShearAt(qreal step) const
qreal xTranslationAt(qreal step) const
qreal yTranslationAt(qreal step) const

Открытые слоты

void setStep(qreal step)

Защищенные функции

virtual void afterAnimationStep(qreal step)
virtual void beforeAnimationStep(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::setStep(qreal step)

Устанавливает текущее значение step для анимации, заставляя выполняться преобразования, запланированные на этом шаге.

[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().

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.0/qgraphicsitemanimation.html

Spec-Zone.ru

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