PySide6.QtWidgets.QGraphicsItemAnimation

class QGraphicsItemAnimation

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

PySide6.QtWidgets.QGraphicsItemAnimation 的继承图

概要

方法

虚拟方法

插槽

注意

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

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

QGraphicsItemAnimation 类用于动画化一个 QGraphicsItem。你可以在指定的步骤中安排项目变换矩阵的更改。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])
Parameters:

父对象QObject

使用给定的parent构建一个动画对象。

afterAnimationStep(step)
Parameters:

步长 – 浮点数

此方法旨在在子类中被重写,这些子类需要在新步骤发生后执行额外的代码。动画step用于在动作依赖于其值的情况下使用。

beforeAnimationStep(step)
Parameters:

步长 – 浮点数

此方法旨在被子类重写,这些子类需要在新步骤发生之前执行额外的代码。动画step在动作依赖于其值的情况下提供使用。

clear()

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

horizontalScaleAt(step)
Parameters:

步长 – 浮点数

Return type:

浮点数

返回指定step值处项目的水平比例。

另请参阅

setScaleAt()

horizontalShearAt(step)
Parameters:

步长 – 浮点数

Return type:

浮点数

返回指定step值处项目的水平剪切。

另请参阅

setShearAt()

item()
Return type:

QGraphicsItem

返回动画对象操作的项目。

另请参阅

setItem()

posAt(step)
Parameters:

步长 – 浮点数

Return type:

QPointF

返回给定step值处项目的位置。

另请参阅

setPosAt()

posList()
Return type:

std.pairqreal的列表,QPointF

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

另请参阅

posAt() setPosAt()

rotationAt(step)
Parameters:

步长 – 浮点数

Return type:

浮点数

返回项目在指定的step值处旋转的角度。

另请参阅

setRotationAt()

rotationList()
Return type:

.std.pairqreal,qreal的列表

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

scaleList()
Return type:

std.pairqreal的列表,QPointF

返回所有显式插入的比例尺。

setItem(item)
Parameters:

项目QGraphicsItem

设置指定的item用于动画中。

另请参阅

item()

setPosAt(step, pos)
Parameters:
  • step – 浮点数

  • posQPointF

将给定step值的项目位置设置为指定的point

另请参阅

posAt()

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

  • angle – 浮点数

将给定step值的项目旋转到指定的angle

另请参阅

rotationAt()

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

  • sx – 浮点数

  • sy – 浮点数

使用由sxsy指定的水平和垂直比例因子,在给定的step值处设置项目的比例。

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

  • sh – 浮点数

  • sv – 浮点数

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

setStep(x)
Parameters:

x – 浮点数

设置动画的当前step值,导致在此步骤安排的转换被执行。

setTimeLine(timeLine)
Parameters:

时间线QTimeLine

将用于控制动画速率的时间线对象设置为指定的timeLine

另请参阅

timeLine()

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

  • dx – 浮点数

  • dy – 浮点数

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

shearList()
Return type:

std.pairqreal的列表,QPointF

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

timeLine()
Return type:

QTimeLine

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

另请参阅

setTimeLine()

transformAt(step)
Parameters:

步长 – 浮点数

Return type:

QTransform

返回用于指定step值的项目的变换。

translationList()
Return type:

std.pairqreal的列表,QPointF

返回所有明确插入的翻译。

verticalScaleAt(step)
Parameters:

步长 – 浮点数

Return type:

浮点数

返回指定step值处项目的垂直比例。

另请参阅

setScaleAt()

verticalShearAt(step)
Parameters:

步长 – 浮点数

Return type:

浮点数

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

另请参阅

setShearAt()

xTranslationAt(step)
Parameters:

步长 – 浮点数

Return type:

浮点数

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

另请参阅

setTranslationAt()

yTranslationAt(step)
Parameters:

步长 – 浮点数

Return type:

浮点数

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

另请参阅

setTranslationAt()