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知道其变换需要更新。另请参阅