Spec-Zone.ru › Qt 5.6

Класс QGraphicsTransform

Класс QGraphicsTransform — это абстрактный базовый класс для построения сложных преобразований QGraphicsItems. Подробнее...

Заголовок: #include <QGraphicsTransform>
qmake: QT += widgets
С тех пор: Qt 4.6
Наследует: QObject
Наследуется от:

QGraphicsRotation и QGraphicsScale

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

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

QGraphicsTransform(QObject *parent = Q_NULLPTR)
~QGraphicsTransform()
virtual void applyTo(QMatrix4x4 *matrix) const = 0
  • 31 открытая функция, унаследованная от QObject

Защищенные слоты

void update()

Дополнительные унаследованные члены

  • 1 свойство, унаследованное от QObject
  • 1 открытый слот, унаследованный от QObject
  • 2 сигнала, унаследованные от QObject
  • 11 статических открытых членов, унаследованных от QObject
  • 9 защищенных функций, унаследованных от QObject

Подробное описание

Класс QGraphicsTransform — это абстрактный базовый класс для построения сложных преобразований QGraphicsItems.

В качестве альтернативы QGraphicsItem::transform, QGraphicsTransform позволяет создавать и управлять сложными преобразованиями, которые можно настраивать независимо с помощью специализированных свойств.

QGraphicsItem позволяет назначить любое количество экземпляров QGraphicsTransform одному QGraphicsItem. Каждый QGraphicsTransform применяется по порядку, один за другим, к QGraphicsItem, которому он назначен.

QGraphicsTransform особенно полезен для анимации. В то время как QGraphicsItem::setTransform() позволяет напрямую назначить любое преобразование элементу, нет прямого способа интерполировать между двумя различными преобразованиями (например, при переходе между двумя состояниями, каждое из которых имеет разное произвольное преобразование, назначенное элементу). Используя QGraphicsTransform, можно интерполировать значения свойств каждого независимого преобразования. Результирующая операция затем объединяется в одно преобразование, которое применяется к QGraphicsItem.

Преобразования вычисляются в истинном 3D-пространстве с использованием QMatrix4x4. При применении преобразования к QGraphicsItem, оно будет спроецировано обратно в 2D-QTransform. Когда несколько объектов QGraphicsTransform применяются к QGraphicsItem, все преобразования вычисляются в истинном 3D-пространстве, и проекция обратно в 2D происходит только после применения последнего QGraphicsTransform. Исключением из этого является QGraphicsRotation, который проецирует обратно в 2D после каждого вращения, чтобы сохранить эффект перспективы вокруг осей X и Y.

Если вы хотите создать собственное конфигурируемое преобразование, вы можете создать подкласс QGraphicsTransform (или любой из существующих подклассов) и переопределить чистую виртуальную функцию applyTo(), которая принимает указатель на QMatrix4x4. Каждая операция, которую вы хотите применить, должна быть представлена в виде свойств (например, customTransform->setVerticalShear(2.5)). Внутри реализации applyTo() вы можете соответственно изменить предоставленное преобразование.

QGraphicsTransform можно использовать совместно с QGraphicsItem::setTransform(), QGraphicsItem::setRotation() и QGraphicsItem::setScale().

См. также QGraphicsItem::transform(), QGraphicsScale и QGraphicsRotation.

Документация по членам функции

QGraphicsTransform::QGraphicsTransform(QObject *parent = Q_NULLPTR)

Конструирует новый QGraphicsTransform с заданным parent.

QGraphicsTransform::~QGraphicsTransform()

Уничтожает преобразование графики.

[pure virtual] void QGraphicsTransform::applyTo(QMatrix4x4 *matrix) const

Эта чисто виртуальная функция должна быть переопределена в производных классах.

Применяет это преобразование к matrix.

См. также QGraphicsItem::transform() и QMatrix4x4::toTransform().

[protected slot] void QGraphicsTransform::update()

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

При реализации собственного пользовательского графического преобразования вы должны вызывать эту функцию каждый раз, когда вы изменяете параметр, чтобы QGraphicsItem знал, что его преобразование необходимо обновить.

См. также applyTo().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qgraphicstransform.html

Spec-Zone.ru

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