![]() |
Главная · Все классы · Основные классы · Классы по группам · Модули · Функции | ![]() |
Класс QGraphicsItemAnimation предоставляет простую поддержку анимации для QGraphicsItem. Далее...
#include <QGraphicsItemAnimation>
Унаследован от: QObject.
Класс был добавлен в Qt 4.2.
Класс 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 и Каркас графического представления.
Создаёт объект анимации с заданным родителем parent.
Уничтожает анимационный объект.
Подразумевается что этот метод будет переопределён в подклассах, которым необходимо выполнять дополнительный код после того как наступил новый шаг. Шаг анимации step предоставляется для случаев, когда действие зависит от его значения.
Подразумевается что этот метод будет переопределён в подклассах, которым необходимо выполнять дополнительный код перед тем как наступил новый шаг. Шаг анимации step предоставляется для случаев, когда действие зависит от его значения.
Очищает запланированные преобразования, используемые для анимации, но сохраняет элемент и шкалу времени.
Возвращает значение горизонтального масштаба элемента для указанного значения шага step.
Смотрите также setScaleAt().
Возвращает значение горизонтального обрезания элемента для указанного значения шага step.
Смотрите также setShearAt().
Возвращает элемент с которым работает объект анимации.
Смотрите также setItem().
Возвращает матрицу, используемую для преобразования элемента, для указанного значения шага step.
Возвращает положение элемента для указанного значения шага step.
Смотрите также setPosAt().
Возвращает все явно заданные положения.
Смотрите также posAt() и setPosAt().
Сбрасывает позицию элемента и его преобразование.
Возвращает угол, на который элемент будет повёрнут, для указанного значения шага step.
Смотрите также setRotationAt().
Возвращает все явно заданные повороты.
Смотрите также rotationAt() и setRotationAt().
Возвращает все явно заданные масштабы.
Смотрите также verticalScaleAt(), horizontalScaleAt() и setScaleAt().
Устанавливает указанный элемент item для использования в анимации.
Смотрите также item().
Устанавливает положение элемента для указанного значения шага step равным point.
Смотрите также posAt().
Устанавливает поворот элемента для указанного значения шага step равным углу angle.
Смотрите также rotationAt().
Устанавливает масштаб элемента для указанного значения шага step используя коэффициенты горизонтального и вертикального масштаба, указанные sx и sy.
Смотрите также verticalScaleAt() и horizontalScaleAt().
Устанавливает обрезание элемента для указанного значения шага step используя коэффициенты горизонтального и вертикального обрезания, указанные sh и sv.
Смотрите также verticalShearAt() и horizontalShearAt().
Устанавливает значение текущего шага step, вызывая выполнения запланированных на этом шагу преобразований.
Устанавливает объект шкалы времени, используемый для контролирования скорости анимации, равным указанному timeLine.
Смотрите также timeLine().
Устанавливает масштаб элемента для указанного значения шага step используя горизонтальную и вертикальную координаты, указанные dx и dy.
Смотрите также xTranslationAt() и yTranslationAt().
Возвращает все явно заданные обрезания.
Смотрите также verticalShearAt(), horizontalShearAt() и setShearAt().
Возвращает объект шкалы времени, используемый для контролирования скорости анимации.
Смотрите также setTimeLine().
Возвращает все явно заданные перемещения.
Смотрите также xTranslationAt(), yTranslationAt() и setTranslationAt().
Возвращает значение вертикального масштаба элемента для указанного значения шага step.
Смотрите также setScaleAt().
Возвращает значение вертикального обрезания элемента для указанного значения шага step.
Смотрите также setShearAt().
Возвращает горизонтальное перемещение элемента для указанного значения шага step.
Смотрите также setTranslationAt().
Возвращает вертикальное перемещение элемента для указанного значения шага step.
Смотрите также setTranslationAt().
Copyright © 2008 Trolltech | Торговые марки | Qt 4.3.5 |