class QPropertyAnimation#

QPropertyAnimation 类用于动画化 Qt 属性。 更多信息

Inheritance diagram of PySide6.QtCore.QPropertyAnimation

自版本 4.6 以来引入。

概述#

属性#

  • propertyName - 此动画的目标属性名称

  • targetObject - 此动画的目标 QObject

方法#

  • def __init__()

  • def propertyName()

  • def setPropertyName()

  • def setTargetObject()

  • 定义 targetObject()

注意

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

详细描述#

警告

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

QPropertyAnimationQt属性 上进行插值。由于属性值存储在 QVariant 中,该类继承自 QVariantAnimation,并支持与父类相同的 meta types 动画。

声明属性的类必须是 QObject 。为了使属性可动画化,它必须提供设置器(以便 QPropertyAnimation 可以设置属性值)。请注意,这使得可以动画化Qt的大部分小部件。让我们看看一个例子

from PySide6.QtWidgets import QApplication
from PySide6.QtWidgets import QPushButton
from PySide6.QtCore import QPropertyAnimation
class MyButtonWidget(QWidget):

# public
    MyButtonWidget(QWidget parent = None)

def __init__(self, QWidget(parent):

    button = QPushButton(tr("Animated Button"), self)
    anim = QPropertyAnimation(button, "pos", self)
    anim.setDuration(10000)
    anim.setStartValue(QPoint(0, 0))
    anim.setEndValue(QPoint(100, 250))
    anim.start()

if __name__ == "__main__":

    a = QApplication(argc, argv)
    buttonAnimWidget = MyButtonWidget()
    buttonAnimWidget.resize(QSize(800, 600))
    buttonAnimWidget.show()
    return a.exec()

注意

您还可以通过在开始动画时选择一个 delete policy 来控制动画的生命周期。

将属性名称和应该动画化的 QObject 实例传递给构造函数。然后您可以指定属性的起始值和结束值。对于您自己实现的类中的属性,过程相同——只需检查 QVariantAnimation 以确保您的 QVariant 类型受支持。

QVariantAnimation 类描述了如何详细设置动画。但是,请注意,如果没有设置起始值,属性将从创建QPropertyAnimation 实例时的值开始。

QPropertyAnimation 可单独使用,效果极佳。对于复杂动画,例如包含多个对象的动画,提供 QAnimationGroup。动画组是一个可以包含其他动画的动画,并且可以管理其动画的播放时机。请参考 QParallelAnimationGroup 的示例。

注意

当使用 from __feature__ import true_property 时,可以直接使用属性,或者通过访问函数进行使用。

属性propertyName: QByteArray#

此属性存储此动画的目标属性名称。

此属性定义了此动画的目标属性名称。属性名称对于动画的运行是必需的。

访问函数
属性targetObject: QObject#

此属性包含此动画的目标 QObject

此属性定义了此动画的目标 QObject

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

parentQObject

构建一个 QPropertyAnimation 对象。将 parent 传递给 QObject 的构造函数。

__init__(target, propertyName[, parent=None])
参数::

构建一个QPropertyAnimation对象。将parent传递给QObject的构造函数。动画改变了target上的属性propertyName。默认持续时间为250毫秒。

另请参阅

targetObject propertyName

propertyName()#
返回类型:

QByteArray

另请参阅

setPropertyName()

属性propertyName的获取器。

setPropertyName(propertyName)#
参数::

propertyNameQByteArray

另请参阅

propertyName()

属性propertyName的设置器。

setTargetObject(target)#
参数::

targetQObject

另请参阅

targetObject()

属性targetObject的设置器。

targetObject()#
返回类型:

QObject

另请参阅

setTargetObject()

属性targetObject的获取器。