QAbstractAnimation Class
The QAbstractAnimation class is the base of all animations. More...
| Header: | #include <QAbstractAnimation> |
| qmake: | QT += core |
| Since: | Qt 4.6 |
| Inherits: | QObject |
| Inherited By: |
This class was introduced in Qt 4.6.
Public Types
| enum | DeletionPolicy { KeepWhenStopped, DeleteWhenStopped } |
| enum | Direction { Forward, Backward } |
| enum | State { Stopped, Paused, Running } |
Properties
|
Public Functions
| int | currentLoop() const |
| int | currentTime() const |
| QAbstractAnimation::Direction | direction() const |
| virtual int | duration() const = 0 |
| int | loopCount() const |
| void | setDirection(QAbstractAnimation::Direction direction) |
| void | setLoopCount(int loopCount) |
| QAbstractAnimation::State | state() const |
Public Slots
| void | setCurrentTime(int msecs) |
Signals
| void | currentLoopChanged(int currentLoop) |
| void | directionChanged(QAbstractAnimation::Direction) |
| void | stateChanged(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) |
Detailed Description
The class defines the functions for the functionality shared by all animations. By inheriting this class, you can create custom animations that plug into the rest of the animation framework.
The progress of an animation is given by its current time (currentLoopTime()), which is measured in milliseconds from the start of the animation (0) to its end (duration()). The value is updated automatically while the animation is running. It can also be set directly with setCurrentTime().
At any point an animation is in one of three states: Running, Stopped, or Paused--as defined by the State enum. The current state can be changed by calling start(), stop(), pause(), or resume(). An animation will always reset its current time when it is started. If paused, it will continue with the same current time when resumed. When an animation is stopped, it cannot be resumed, but will keep its current time (until started again). QAbstractAnimation will emit stateChanged() whenever its state changes.
An animation can loop any number of times by setting the loopCount property. When an animation's current time reaches its duration(), it will reset the current time and keep running. A loop count of 1 (the default value) means that the animation will run one time. Note that a duration of -1 means that the animation will run until stopped; the current time will increase indefinitely. When the current time equals duration() and the animation is in its final loop, the Stopped state is entered, and the finished() signal is emitted.
QAbstractAnimation provides pure virtual functions used by subclasses to track the progress of the animation: duration() and updateCurrentTime(). The duration() function lets you report a duration for the animation (as discussed above). The animation framework calls updateCurrentTime() when current time has changed. By reimplementing this function, you can track the animation progress. Note that neither the interval between calls nor the number of calls to this function are defined; though, it will normally be 60 updates per second.
By reimplementing updateState(), you can track the animation's state changes, which is particularly useful for animations that are not driven by time.
See also QVariantAnimation, QPropertyAnimation, QAnimationGroup, and The Animation Framework.
Member Type Documentation
enum QAbstractAnimation::DeletionPolicy
| Constant | Value | Description |
|---|---|---|
QAbstractAnimation::KeepWhenStopped | 0 | The animation will not be deleted when stopped. |
QAbstractAnimation::DeleteWhenStopped | 1 | The animation will be automatically deleted when stopped. |
enum QAbstractAnimation::Direction
This enum describes the direction of the animation when in Running state.
| Constant | Value | Description |
|---|---|---|
QAbstractAnimation::Forward | 0 | The current time of the animation increases with time (i.e., moves from 0 and towards the end / duration). |
QAbstractAnimation::Backward | 1 | The current time of the animation decreases with time (i.e., moves from the end / duration and towards 0). |
See also direction.
enum QAbstractAnimation::State
This enum describes the state of the animation.
| Constant | Value | Description |
|---|---|---|
QAbstractAnimation::Stopped | 0 | The animation is not running. This is the initial state of QAbstractAnimation, and the state QAbstractAnimation reenters when finished. The current time remain unchanged until either setCurrentTime() is called, or the animation is started by calling start(). |
QAbstractAnimation::Paused | 1 | The animation is paused (i.e., temporarily suspended). Calling resume() will resume animation activity. |
QAbstractAnimation::Running | 2 | The animation is running. While control is in the event loop, QAbstractAnimation will update its current time at regular intervals, calling updateCurrentTime() when appropriate. |
See also state() and stateChanged().
Property Documentation
currentLoop : const int
This property holds the current loop of the animation
This property describes the current loop of the animation. By default, the animation's loop count is 1, and so the current loop will always be 0. If the loop count is 2 and the animation runs past its duration, it will automatically rewind and restart at current time 0, and current loop 1, and so on.
When the current loop changes, QAbstractAnimation emits the currentLoopChanged() signal.
Access functions:
| int | currentLoop() const |
Notifier signal:
| void | currentLoopChanged(int currentLoop) |
currentTime : int
This property holds the current time and progress of the animation
This property describes the animation's current time. You can change the current time by calling setCurrentTime, or you can call start() and let the animation run, setting the current time automatically as the animation progresses.
The animation's current time starts at 0, and ends at totalDuration().
Access functions:
| int | currentTime() const |
| void | setCurrentTime(int msecs) |
See also loopCount and currentLoopTime().
direction : Direction
This property holds the direction of the animation when it is in Running state.
This direction indicates whether the time moves from 0 towards the animation duration, or from the value of the duration and towards 0 after start() has been called.
By default, this property is set to Forward.
Access functions:
| QAbstractAnimation::Direction | direction() const |
| void | setDirection(QAbstractAnimation::Direction direction) |
Notifier signal:
| void | directionChanged(QAbstractAnimation::Direction) |
duration : const int
This property holds the duration of the animation.
If the duration is -1, it means that the duration is undefined. In this case, loopCount is ignored.
Access functions:
| virtual int | duration() const = 0 |
loopCount : int
This property holds the loop count of the animation
This property describes the loop count of the animation as an integer. By default this value is 1, indicating that the animation should run once only, and then stop. By changing it you can let the animation loop several times. With a value of 0, the animation will not run at all, and with a value of -1, the animation will loop forever until stopped. It is not supported to have loop on an animation that has an undefined duration. It will only run once.
Access functions:
| int | loopCount() const |
| void | setLoopCount(int loopCount) |
state : const State
state of the animation.
This property describes the current state of the animation. When the animation state changes, QAbstractAnimation emits the stateChanged() signal.
Access functions:
| QAbstractAnimation::State | state() const |
Notifier signal:
| void | stateChanged(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) |