class QGraphicsRotation#

QGraphicsRotation 类提供了一个围绕指定轴的旋转变化。 更多...

Inheritance diagram of PySide6.QtWidgets.QGraphicsRotation

自版本 4.6 起新增。

概览#

属性#

  • angle - 顺时针旋转的角度,以度为单位

  • axis - 旋转轴,由三维空间中的向量指定

  • origin - 3D 空间中旋转的原点

方法#

信号#

注意

此文档可能包含自动从 C++ 转译到 Python 的代码片段。我们始终欢迎为代码片段翻译做出贡献。如果您发现翻译问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 创建工单的方式告知我们。

详细描述#

您可以通过将一个 QVector3D 分配给轴属性或通过将成员传递给 setAxis 便利函数来指定所需的轴。默认轴是 (0, 0, 1),即围绕 Z 轴旋转。

QGraphicsRotation 提供的角度属性现在描述了围绕此轴旋转的角度数。

QGraphicsRotation 提供一些参数,以帮助控制旋转应该如何应用。

原点是围绕其进行旋转的点(即,它相对于父对象保持固定,而其余部分进行旋转)。默认情况下,原点是 QPointF(0, 0)。

角度属性提供了绕原点顺时针旋转项的角度数。此值也可以是负数,表示逆时针旋转。出于动画目的,提供超过 (-360, 360) 度的旋转角度也可能很有用,例如,以多倍旋转项。

注意:最终旋转是先在 3D 空间中进行旋转,然后将其投影回 2D 的组合效果。如果连续执行多个旋转,除非它们都在 Z 轴周围,否则它们的行为可能不符合预期。

注意

当使用 from __feature__ import true_property 时,可以直接使用属性,否则通过访问器函数使用。

属性 angleᅟ: float#

此属性包含顺时针旋转的角度,单位为度。

角度可以是任何实数;默认值为0.0。180度将使对象旋转180度。如果您提供一个负数,则对象将逆时针旋转。通常旋转角度将在(-360, 360)范围内,但您也可以提供此范围之外的数字(例如,370度的角度与10度的效果相同)。将角度设置为NaN将导致没有旋转。

另请参阅

原点

访问函数
属性 axisᅟ: QVector3D#

此属性保存旋转轴,该轴由3D空间中的一个向量指定。

这可以是3D空间中的任何轴。默认轴为(0, 0, 1),它与Z轴对齐。如果您提供另一个轴,《a href="#PySide6.QtWidgets.QGraphicsRotation" title="PySide6.QtWidgets.QGraphicsRotation">QGraphicsRotation将提供围绕此轴的变换。例如,如果您想绕X轴旋转一个项目,可以将轴传递为(1, 0, 0)。

另请参阅

angle

访问函数
属性 originᅟ: QVector3D#

此属性保存3D空间中的旋转原点。

所有旋转都相对于此点进行(即,当项目旋转时,此点相对于父元素将保持固定)。

另请参阅

angle

访问函数
__init__([parent=None])#
参数:

parentQObject

使用给定的父元素构建一个新的 QGraphicsRotation

angle()#
返回类型:

float

另请参阅

setAngle()

属性 angleᅟ 的获取器。

angleChanged()#

每当角度发生变化时,都会发射此信号。

另请参阅

angle

属性《angle》的通告信号。

axis()
返回类型:

QVector3D

另请参阅

setAxis()

属性《axis》的获取器。

axisChanged()

每当对象的自旋转轴发生变化时,此信号将被发送。

另请参阅

axis

属性《axis》的通告信号。

origin()
返回类型:

QVector3D

另请参阅

setOrigin()

属性《origin》的获取器。

originChanged()

每当原点发生变化时,此信号将被发送。

另请参阅

原点

属性《origin》的通告信号。

setAngle(arg__1)
参数:

arg__1 – float

另请参阅

angle()

属性《angle》的设置器。

setAxis(axis)
参数:

axisAxis

将旋转轴设为“axis”的便利函数。

注意:对于QTransform,Qt::YAxis旋转与3D空间中的正确数学旋转方向相反。QGraphicsRotation类实现了正确的数学旋转。以下两个代码序列将执行相同的转换

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

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

axisQVector3D

另请参阅

axis()

属性《axis》的设置器。

setOrigin(point)
参数:

pointQVector3D

另请参阅

origin()

属性 origin₂ 的设置器。