PySide6.QtWidgets.QGraphicsTransform¶
- class QGraphicsTransform¶
QGraphicsTransform
类是一个抽象基类,用于在 QGraphicsItems 上构建高级变换。更多…继承者:
QGraphicsScale
,QGraphicsRotation
在版本4.6中添加。
概要¶
方法¶
def
__init__()
虚拟方法¶
def
applyTo()
插槽¶
def
update()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
作为
transform
的替代方案,QGraphicsTransform
允许您创建和控制可以使用专门属性独立配置的高级变换。QGraphicsItem
允许你将任意数量的QGraphicsTransform
实例分配给一个QGraphicsItem
。每个QGraphicsTransform
按顺序一次一个地应用于它被分配到的QGraphicsItem
。QGraphicsTransform
特别适用于动画。虽然setTransform()
允许你直接将任何变换分配给一个项目,但没有直接的方法在两个不同的变换之间进行插值(例如,在两种状态之间过渡时,每种状态都分配了不同的任意变换)。使用QGraphicsTransform
你可以对每个独立变换的属性值进行插值。然后将结果操作组合成一个单一的变换,应用于QGraphicsItem
。变换是在真正的3D空间中使用QMatrix4x4计算的。当变换应用于
QGraphicsItem
时,它将被投影回2D的QTransform。当多个QGraphicsTransform
对象应用于QGraphicsItem
时,所有的变换都是在真正的3D空间中计算的,只有在最后一个QGraphicsTransform
应用后才会投影回2D。例外情况是QGraphicsRotation
,它在每次旋转后都会投影回2D,以保留围绕X和Y轴的透视效果。如果你想创建自己的可配置变换,你可以创建一个
QGraphicsTransform
(或任何现有的子类)的子类,并重新实现纯虚函数applyTo()
,该函数接受一个指向QMatrix4x4的指针。你希望应用的每个操作都应作为属性公开(例如,customTransform->setVerticalShear(2.5))。在你重新实现的applyTo()
中,你可以相应地修改提供的变换。QGraphicsTransform
可以与setTransform()
、setRotation()
和setScale()
一起使用。使用给定的
parent
构造一个新的QGraphicsTransform
。- abstract applyTo(matrix)¶
- Parameters:
矩阵 –
QMatrix4x4
这个纯虚方法必须在派生类中重新实现。
它将此转换应用于
matrix
。另请参阅
- update()¶
通知此转换操作已更改其参数,使得
applyTo()
将返回与之前不同的结果。在实现您自己的自定义图形变换时,每次更改参数时都必须调用此函数,以让
QGraphicsItem
知道其变换需要更新。另请参阅