En esta página

QGraphicsRotation Class

La clase QGraphicsRotation proporciona una transformación de rotación alrededor de un eje dado. Más...

Cabecera: #include <QGraphicsRotation>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Hereda: QGraphicsTransform

Propiedades

Funciones públicas

QGraphicsRotation(QObject *parent = nullptr)
virtual ~QGraphicsRotation()
qreal angle() const
QVector3D axis() const
QVector3D origin() const
void setAngle(qreal)
void setAxis(const QVector3D &axis)
void setAxis(Qt::Axis axis)
void setOrigin(const QVector3D &point)

Funciones públicas reimplementadas

virtual void applyTo(QMatrix4x4 *matrix) const override

Señales

void angleChanged()
void axisChanged()
void originChanged()

Descripción detallada

Puedes proporcionar el eje deseado asignando un QVector3D a la propiedad axis o pasando un miembro si Qt::Axis a la función de conveniencia setAxis. Por defecto, el eje es (0, 0, 1), es decir, la rotación alrededor del eje Z.

La propiedad angle, que es proporcionada por QGraphicsRotation, describe ahora el número de grados a rotar alrededor de este eje.

QGraphicsRotation proporciona ciertos parámetros para ayudar a controlar cómo debe aplicarse la rotación.

El origen es el punto alrededor del cual se rota el elemento (es decir, permanece fijo respecto al padre mientras se rota el resto del elemento). Por defecto, el origen es QPointF(0, 0).

La propiedad angle proporciona el número de grados en el sentido de las agujas del reloj alrededor del origen. Este valor también puede ser negativo, indicando una rotación en sentido contrario a las agujas del reloj. Para fines de animación también puede ser útil proporcionar ángulos de rotación superiores a (-360, 360) grados, por ejemplo para animar cómo un elemento gira varias veces.

Nota: la rotación final es el efecto combinado de una rotación en el espacio 3D seguida de una proyección de vuelta al 2D. Si se realizan varias rotaciones seguidas, no se comportarán como se espera a menos que todas hayan girado alrededor del eje Z.

Véase también QGraphicsTransform, QGraphicsItem::setRotation(), y QTransform::rotate().

Documentación de propiedades

angle : qreal

Esta propiedad contiene el ángulo de rotación en el sentido de las agujas del reloj, en grados.

El ángulo puede ser cualquier número real; el valor por defecto es 0.0. Un valor de 180 girará 180 grados, en el sentido de las agujas del reloj. Si proporciona un número negativo, el elemento rotará en sentido contrario a las agujas del reloj. Normalmente el ángulo de rotación estará en el rango (-360, 360), pero también puede proporcionar números fuera de este rango (por ejemplo, un ángulo de 370 grados da el mismo resultado que 10 grados). Si el ángulo es NaN, no se produce ninguna rotación.

Funciones de acceso:

qreal angle() const
void setAngle(qreal)

Señal del notificador:

void angleChanged()

Véase también origen.

axis : QVector3D

Esta propiedad contiene un eje de rotación, especificado por un vector en el espacio 3D.

Puede ser cualquier eje en el espacio 3D. Por defecto el eje es (0, 0, 1), que está alineado con el eje Z. Si proporciona otro eje, QGraphicsRotation proporcionará una transformación que gire alrededor de este eje. Por ejemplo, si quieres rotar un elemento alrededor de su eje X, puedes pasar (1, 0, 0) como eje.

Funciones de acceso:

QVector3D axis() const
void setAxis(const QVector3D &axis)
void setAxis(Qt::Axis axis)

Señal de notificación:

void axisChanged()

Véase también QTransform y QGraphicsRotation::angle.

origin : QVector3D

Esta propiedad contiene el origen de la rotación en el espacio 3D.

Todas las rotaciones se harán respecto a este punto (es decir, este punto permanecerá fijo, respecto al padre, cuando se rote el elemento).

Funciones de acceso:

QVector3D origin() const
void setOrigin(const QVector3D &point)

Señal del notificador:

void originChanged()

Véase también angle.

Documentación de las funciones miembro

QGraphicsRotation::QGraphicsRotation(QObject *parent = nullptr)

Construye un nuevo QGraphicsRotation con la dirección parent.

[virtual noexcept] QGraphicsRotation::~QGraphicsRotation()

Destruye la rotación de gráficos.

[signal] void QGraphicsRotation::angleChanged()

Esta señal se emite siempre que el ángulo ha cambiado.

Nota: Señal notificadora para la propiedad angle.

Véase también QGraphicsRotation::angle.

[override virtual] void QGraphicsRotation::applyTo(QMatrix4x4 *matrix) const

Reimplementa: QGraphicsTransform::applyTo(QMatrix4x4 *matrix) const.

[signal] void QGraphicsRotation::axisChanged()

Esta señal se emite cada vez que cambia el eje del objeto.

Nota: Señal notificadora para la propiedad axis.

Véase también QGraphicsRotation::axis.

[signal] void QGraphicsRotation::originChanged()

Esta señal se emite siempre que el origen ha cambiado.

Nota: Señal notificadora para la propiedad origen.

Véase también QGraphicsRotation::origin.

void QGraphicsRotation::setAxis(Qt::Axis axis)

Función de conveniencia para fijar el eje a axis.

Nota: la rotación Qt::YAxis para QTransform está invertida con respecto a la rotación matemática correcta en el espacio 3D. La clase QGraphicsRotation implementa una rotación matemática correcta. Las siguientes dos secuencias de código realizarán la misma transformación:

QTransform t;
t.rotate(45, Qt::YAxis);

QGraphicsRotation r;
r.setAxis(Qt::YAxis);
r.setAngle(-45);

Nota: Función Setter para la propiedad axis.

Véase también axis().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.