QAbstractAnimation Class Reference

[QtCore module]

该QAbstractAnimation类是所有动画的基础。More…

继承QObject

通过继承QAnimationGroupQPauseAnimationQVariantAnimation

Types

  • enum DeletionPolicy { KeepWhenStopped, DeleteWhenStopped }
  • enum Direction { Forward, Backward }
  • enum State { Stopped, Paused, Running }

Methods

  • __init__ (self, QObject parent = None)
  • int currentLoop (self)
  • int currentLoopTime (self)
  • int currentTime (self)
  • Direction direction (self)
  • int duration (self)
  • bool event (self, QEvent event)
  • QAnimationGroup group (self)
  • int loopCount (self)
  • pause (self)
  • resume (self)
  • setCurrentTime (self, int msecs)
  • setDirection (self, Direction direction)
  • setLoopCount (self, int loopCount)
  • setPaused (self, bool)
  • start (self, DeletionPolicy policy = QAbstractAnimation.KeepWhenStopped)
  • State state (self)
  • stop (self)
  • int totalDuration (self)
  • updateCurrentTime (self, int currentTime)
  • updateDirection (self, Direction direction)
  • updateState (self, State newState, State oldState)

Qt Signals

  • void currentLoopChanged (int)
  • void directionChanged (QAbstractAnimation::Direction)
  • void finished ()
  • void stateChanged (QAbstractAnimation::State,QAbstractAnimation::State)

Detailed Description

该QAbstractAnimation类是所有动画的基础。

这个类定义了所有的动画共享的功能的功能。通过继承这个类,您可以创建自定义动画,插入的动画框架的其馀部分。

动画的进度是由它的当前时间(给定currentLoopTime()),这是从动画开始以毫秒为单位(0)到它的端部(duration())。动画运行时的值会自动更新。它也可以直接与设置setCurrentTime( ) 。

在任何时候动画是在三种状态之一:RunningStoppedPaused - 被定义State枚举。目前的状态可以通过调用改变start( )stop( )pause() ,或resume( ) 。动画将重新设定其current time当它被启动。如果暂停,它会继续恢复时相同的当前时间。当动画停止时,它不能被恢复,但将保持其当前时间(直到再次启动)。 QAbstractAnimation会发出stateChanged( )每当它的状态的变化。

动画可以循环通过设置任意数量的倍loopCount属性。当动画的当前时间达到duration( ) ,它会重置当前的时间,并保持运行。为1,循环次数(默认值)表示该动画将运行一次。需要注意的是-1的持续时间意味着动画将运行到停止,当前的时间将增加下去。当当前时间等于duration()和动画是在其最后循环中,Stopped进入状态,而finished()信号被发射。

QAbstractAnimation提供由子类用于跟踪动画的进度纯虚函数:duration()和updateCurrentTime( ) 。该duration( )函数可以报告一个持续时间为动画(如上所述) 。动画框架调用updateCurrentTime( )时,当前时间已更改。通过重新实现此功能,您可以跟踪动画进度。请注意,无论呼叫也不调用该函数的数量之间的间隔被定义,虽然,它通常是每秒60更新。

通过重新实现updateState( ) ,你可以跟踪动画的状态发生变化,这是不是由时间驱动的动画特别有用。


Type Documentation

  1. QAbstractAnimation.DeletionPolicy
Constant Value Description
QAbstractAnimation.KeepWhenStopped 0 停止时的动画效果将不会被删除。
QAbstractAnimation.DeleteWhenStopped 1 停止时,动画将被自动删除。
  1. QAbstractAnimation.Direction

这个枚举变量描述了动画的方向时,Running状态。

Constant Value Description
QAbstractAnimation.Forward 0 随时间的增加动画的当前时间(即从0到接近尾声/时间移动) 。
QAbstractAnimation.Backward 1 随着时间(即从底/持续时间和对0移动)动画的当前时间减少。

See also direction

  1. QAbstractAnimation.State

这个枚举变量描述了动画的状态。

Constant Value Description
QAbstractAnimation.Stopped 0 动画没有运行。这是初始状态QAbstractAnimation,和国家QAbstractAnimation重新进入时完成。当前时间保持不变,直至setCurrentTime()被调用,或动画是通过调用启动start( ) 。
QAbstractAnimation.Paused 1 动画暂停(即暂停) 。调用resume( )将恢复动画活动。
QAbstractAnimation.Running 2 在动画运行。而控制是在事件循环,QAbstractAnimation将定期更新其当前的时间,调用updateCurrentTime( )在适当的时候。

See also state()和stateChanged( ) 。


Method Documentation

  1. QAbstractAnimation.__init__ (self, QObject parent = None)

parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

构建QAbstractAnimation基类和通行证parentQObject的构造。

See also QVariantAnimationQAnimationGroup

  1. int QAbstractAnimation.currentLoop (self)
  1. int QAbstractAnimation.currentLoopTime (self)

返回当前循环内的当前时间。它可以从0到duration( ) 。

See also duration()和currentTime

  1. int QAbstractAnimation.currentTime (self)
  1. Direction QAbstractAnimation.direction (self)

[

  1. int QAbstractAnimation.duration (self)

这种方法是抽象的,应在任何子类中重新实现。

  1. bool QAbstractAnimation.event (self, QEvent event)

]($docs-qabstractanimation.html#Direction-enum)

从重新实现QObject.event( ) 。

  1. QAnimationGroup QAbstractAnimation.group (self)

如果这个动画的一部分QAnimationGroup,这个函数返回一个指针到组,否则返回0 。

See also QAnimationGroup.addAnimation( ) 。

  1. int QAbstractAnimation.loopCount (self)
  1. QAbstractAnimation.pause (self)

这种方法也是一个Qt槽与C + +的签名void pause()

暂停动画。当动画暂停时,state()返回暂停。价值currentTime将保持不变,直到resume()或start()被调用。如果你想从当前时间继续,请致电resume( ) 。

See also start( )state()和resume( ) 。

  1. QAbstractAnimation.resume (self)

这种方法也是一个Qt槽与C + +的签名void resume()

它恢复暂停后动画。当动画恢复时,它发出的恢复()和stateChanged( )信号。该currentTime的不被改变。

See also start( )pause()和state( ) 。

  1. QAbstractAnimation.setCurrentTime (self, int msecs)

这种方法也是一个Qt槽与C + +的签名void setCurrentTime(int)

  1. QAbstractAnimation.setDirection (self, Direction direction)
  1. QAbstractAnimation.setLoopCount (self, int loopCount)
  1. QAbstractAnimation.setPaused (self, bool)

这种方法也是一个Qt槽与C + +的签名void setPaused(bool)

If paused诚然,动画暂停。如果paused是假的,动画重新开始。

See also state( )pause()和resume( ) 。

  1. QAbstractAnimation.start (self, DeletionPolicy policy = QAbstractAnimation.KeepWhenStopped)

这种方法也是一个Qt槽与C + +的签名void start(QAbstractAnimation::DeletionPolicy = QAbstractAnimation.KeepWhenStopped)

启动动画。该policy论证说,不论是否当它完成的动画应该被删除。当动画开始,则stateChanged()信号被发射,和state()返回运行。当控制到达事件循环,动画将自行运行,周期性地调用updateCurrentTime( )作为动画的进展。

如果动画目前已停止或已走到了尽头,调用start ( )将回放动画,并从头开始。当动画到达末尾时,动画要么停止,或者如果在循环水平大于1,它会倒带,并从开头继续。

如果动画已经在运行,这个函数不执行任何操作。

See also stop()和state( ) 。

  1. State QAbstractAnimation.state (self)

[

  1. QAbstractAnimation.stop (self)

这种方法也是一个Qt槽与C + +的签名void stop()

]($docs-qabstractanimation.html#State-enum)

停止播放动画。当动画停止时,它发出的stateChanged()信号,并state( )返回时停止。当前的时间不会改变。

如果在到达终点后停止动画本身(即,currentLoopTime()==duration()和currentLoop( ) \u003eloopCount() - 1 ),则finished()信号被发射。

See also start()和state( ) 。

  1. int QAbstractAnimation.totalDuration (self)

返回动画的总有效和持续时间,包括循环计数。

See also duration()和currentTime

  1. QAbstractAnimation.updateCurrentTime (self, int currentTime)

这种方法是抽象的,应在任何子类中重新实现。

这个纯虚函数被调用每次动画的currentTime变化。

See also updateState( ) 。

  1. QAbstractAnimation.updateDirection (self, Direction direction)

这个虚函数被调用QAbstractAnimation当动画的方向被改变。该direction参数是新的方向。

See also setDirection()和direction( ) 。

  1. QAbstractAnimation.updateState (self, State newState, State oldState)

这个虚函数被调用QAbstractAnimation当动画的状态从变oldStatenewState

See also start( )stop( )pause()和resume( ) 。


Qt Signal Documentation

  1. void currentLoopChanged (int)

这是该信号的默认超载。

QAbstractAnimation发出该信号时电流回路的改变。currentLoop是电流回路。

See also currentLoop()和loopCount( ) 。

  1. void directionChanged (QAbstractAnimation::Direction)

这是该信号的默认超载。

QAbstractAnimation发出该信号时的方向已经改变。newDirection是新的方向。

See also direction

  1. void finished ()

这是该信号的默认超载。

QAbstractAnimation发出此信号后的动画已经停止,并已达到结束。

之后此信号被发射stateChanged( ) 。

See also stateChanged( ) 。

  1. void stateChanged (QAbstractAnimation::State,QAbstractAnimation::State)

这是该信号的默认超载。

QAbstractAnimation发出这个信号时动画的状态已经从oldStatenewState。之后虚拟这个信号被发射updateState( )函数被调用。

See also updateState( ) 。