Spec-Zone.ru › Qt 5.15

Класс QGraphicsItemAnimation

Класс QGraphicsItemAnimation предоставляет простую поддержку анимации для QGraphicsItem. Подробнее...

Заголовок: #include <QGraphicsItemAnimation>
qmake: QT += widgets
С версии: Qt 4.2
Наследует: QObject

Этот класс устарел. Он предоставляется для совместимости со старым кодом. Не рекомендуется использовать его в новом коде.

Этот класс был представлен в Qt 4.2.

  • Список всех членов, включая унаследованные
  • Устаревшие члены

Открытые функции

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

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

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)

Этот метод предназначен для переопределения в подклассах, которым требуется выполнить дополнительный код после того, как произошел новый шаг. Шаг анимации предоставляется для использования в тех случаях, когда действие зависит от его значения.

[virtual protected] void QGraphicsItemAnimation::beforeAnimationStep(qreal 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().

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

Spec-Zone.ru

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