PySide6.QtWidgets.QGraphicsTransform

class QGraphicsTransform

QGraphicsTransform 类是一个抽象基类,用于在 QGraphicsItems 上构建高级变换。更多

PySide6.QtWidgets.QGraphicsTransform 的继承图

继承者: QGraphicsScale, QGraphicsRotation

在版本4.6中添加。

概要

方法

虚拟方法

插槽

注意

本文档可能包含从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() 一起使用。

__init__([parent=None])
Parameters:

父对象QObject

使用给定的parent构造一个新的QGraphicsTransform

abstract applyTo(matrix)
Parameters:

矩阵QMatrix4x4

这个纯虚方法必须在派生类中重新实现。

它将此转换应用于matrix

另请参阅

transform() toTransform()

update()

通知此转换操作已更改其参数,使得applyTo()将返回与之前不同的结果。

在实现您自己的自定义图形变换时,每次更改参数时都必须调用此函数,以让QGraphicsItem知道其变换需要更新。

另请参阅

applyTo()