class QGraphicsItemAnimation#

`QGraphicsItemAnimation` 类为 `QGraphicsItem` 提供了简单的动画支持。 更多

Inheritance diagram of PySide6.QtWidgets.QGraphicsItemAnimation

概要#

方法#

虚方法#

槽函数#

注记

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

详细描述#

警告

本节包含从C++自动转换为Python的代码片段,可能包含错误。

QGraphicsItemAnimation 类可以动画化 QGraphicsItem 。您可以在指定的步骤处安排对项目变换矩阵的更改。《QGraphicsItemAnimation》 类有一个当前步骤值。当此值改变时,该步骤计划执行的变换将被执行。《QGraphicsItemAnimation》 的当前步骤通过 setStep() 函数设置。

QGraphicsItemAnimation 将进行简单的线性插值,在最近的预定更改之间计算矩阵。例如,如果您设置项目的位置值为0.0和1.0,动画将显示项目在这两个位置之间的直线移动。缩放和旋转也是同样的道理。

通常与 QTimeLine 一起使用该类。然后将时间表的 valueChanged() 信号连接到 setStep() 插槽。例如,您可以通过在膜炎值不同的步骤上调用 setRotationAt() 来设置项目的旋转。动画的时间表通过 setTimeLine() 函数设置。

以下是一个遵循时间表的动画示例

ball = QGraphicsEllipseItem(0, 0, 20, 20)
timer = QTimeLine(5000)
timer.setFrameRange(0, 100)
animation = QGraphicsItemAnimation()
animation.setItem(ball)
animation.setTimeLine(timer)
for i in range(0, 200):
    animation.setPosAt(i / 200.0, QPointF(i, i))
scene = QGraphicsScene()
scene.setSceneRect(0, 0, 250, 250)
scene.addItem(ball)
view = QGraphicsView(scene)
view.show()
timer.start()

请注意,步骤位于0.0和1.0之间。可能需要使用 setUpdateInterval()`。默认更新间隔为40毫秒。一旦设置,则无法删除预定的变换,因此不建议在相同步骤上安排同一类型的几个变换(例如,旋转)。

也请参阅

图形视图框架

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

parentQObject

使用给定的 parent 构造动画对象。

afterAnimationStep(step)#
参数:

step – 浮点数

此方法旨在在子类中重写,子类需要在新的步骤发生后执行附加代码。对于动作取决于其值的情况,提供了动画 step 以供使用。

beforeAnimationStep(step)#
参数:

step – 浮点数

此方法旨在被子类覆盖,以便在其发生新步骤之前执行额外代码。动画步骤提供用于动作取决于其值的场合。

clear()#

清除用于动画的预定变换,但保留项和时间轴。

horizontalScaleAt(step)#
参数:

step – 浮点数

返回类型:

float

根据指定的步骤值返回该项的水平缩放比。

也请参阅

setScaleAt()

horizontalShearAt(step)#
参数:

step – 浮点数

返回类型:

float

根据指定的步骤值返回该项的水平剪切比。

也请参阅

setShearAt()

item()#
返回类型:

QGraphicsItem

返回动画对象操作其上的项。

也请参阅

setItem()

posAt(step)#
参数:

step – 浮点数

返回类型:

QPointF

返回给定步骤值的项的位置。

也请参阅

setPosAt()

posList()#
返回类型:

. std.pair analyzer,qreal,《QPointF》列表

返回所有显式插入的位置。

也请参阅

posAt() setPosAt()

rotationAt(step)#
参数:

step – 浮点数

返回类型:

float

返回负负规在指定的步规值。

也请参阅

setRotationAt()

rotationList()#
返回类型:

. 标准列对,x轴和y轴旋转度数列表

返回所有显式插入的旋转。

scaleList()#
返回类型:

. std.pair analyzer,qreal,《QPointF》列表

返回所有显式插入的尺规。

setItem(item)#
参数:

item - QGraphicsItem

将指定的 item 设置为动画中使用。

也请参阅

item()

setPosAt(step, pos)#
参数:

将项目的位置设置为给定的 step 值到指定的点。

也请参阅

posAt()

setRotationAt(step, angle)#
参数:
  • step – 浮点数

  • angle - float

将项目在给定 step 值处的旋转设置为指定的 angle

也请参阅

rotationAt()

setScaleAt(step, sx, sy)#
参数:
  • step – 浮点数

  • sx - float

  • sy - float

使用指定的水平尺度和垂直缩放因子 sxsy 在给定的 step 值处设置项目的缩放。

setShearAt(step, sh, sv)#
参数:
  • step – 浮点数

  • sh - float

  • sv - float

使用由 shsv 指定的水平和垂直剪切因子在给定的 step 值处设置项目的剪切。

setStep(x)#
参数:

x – 流体数

设置动画当前 step 值,使在此步调度的转换执行。

setTimeLine(timeLine)#
参数:

timeLineQTimeLine

将用于控制动画速率的时序对象设置为特定的 timeLine

也请参阅

timeLine()

setTranslationAt(step, dx, dy)#
参数:
  • step – 浮点数

  • dx – 流体数

  • dy – 流体数

使用通过 dxdy 指定的水平和垂直坐标设置给定 step 值处的项目的平移。

shearList()#
返回类型:

. std.pair analyzer,qreal,《QPointF》列表

返回所有显式插入的剪切。

timeLine()#
返回类型:

QTimeLine

返回用于控制动画发生速率的时序对象。

也请参阅

setTimeLine()

transformAt(step)#
参数:

step – 浮点数

返回类型:

QTransform

返回在指定 step 值时使用的转换。

translationList()#
返回类型:

. std.pair analyzer,qreal,《QPointF》列表

返回所有显式插入的平移。

verticalScaleAt(step)#
参数:

step – 浮点数

返回类型:

float

返回指定 step 值的项的垂直缩放。

也请参阅

setScaleAt()

verticalShearAt(step)#
参数:

step – 浮点数

返回类型:

float

返回指定 step 值的项的垂直剪切。

也请参阅

setShearAt()

xTranslationAt(step)#
参数:

step – 浮点数

返回类型:

float

返回指定 step 值的项的水平平移。

也请参阅

setTranslationAt()

yTranslationAt(step)#
参数:

step – 浮点数

返回类型:

float

返回指定 step 值的项的垂直平移。

也请参阅

setTranslationAt()