- 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
上。变换是在使用QMatrix4x4计算的真实3D空间中进行的。当变换应用于一个
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)#
- 参数:
matrix –
QMatrix4x4
这个纯虚方法必须在派生类中重写。
它将此转换应用于
matrix
。另请参阅
- update()#
通知此转换操作已更改其参数,使得
applyTo()
将返回与之前不同的结果。在实现您自己的自定义图形转换时,您必须每次更改参数时都调用此函数,以便让
QGraphicsItem
知道其转换需要更新。另请参阅