CopperSpice API  1.7.2
QGraphicsItemAnimation Class Reference

The QGraphicsItemAnimation class provides simple animation support for QGraphicsItem. More...

Inheritance diagram for QGraphicsItemAnimation:
QObject

Public Slots

void reset ()
 
void setStep (qreal step)
 
- Public Slots inherited from QObject
void deleteLater ()
 

Public Methods

 QGraphicsItemAnimation (QObject *parent=nullptr)
 
virtual ~QGraphicsItemAnimation ()
 
void clear ()
 
qreal horizontalScaleAt (qreal step) const
 
qreal horizontalShearAt (qreal step) const
 
QGraphicsItemitem () const
 
QMatrix matrixAt (qreal step) const
 
QPointF posAt (qreal step) const
 
QList< QPair< qreal, QPointF > > posList () const
 
qreal rotationAt (qreal step) const
 
QList< QPair< qreal, qreal > > rotationList () const
 
QList< QPair< qreal, QPointF > > scaleList () const
 
void setItem (QGraphicsItem *item)
 
void setPosAt (qreal step, const QPointF &point)
 
void setRotationAt (qreal step, qreal angle)
 
void setScaleAt (qreal step, qreal sx, qreal sy)
 
void setShearAt (qreal step, qreal sh, qreal sv)
 
void setTimeLine (QTimeLine *timeLine)
 
void setTranslationAt (qreal step, qreal dx, qreal dy)
 
QList< QPair< qreal, QPointF > > shearList () const
 
QTimeLinetimeLine () const
 
QList< QPair< qreal, QPointF > > translationList () const
 
qreal verticalScaleAt (qreal step) const
 
qreal verticalShearAt (qreal step) const
 
qreal xTranslationAt (qreal step) const
 
qreal yTranslationAt (qreal step) const
 
- Public Methods inherited from QObject
 QObject (QObject *parent=nullptr)
 
 ~QObject ()
 
bool blockSignals (bool block)
 
const QList< QObject * > & children () const
 
bool connect (const QObject *sender, const QString &signalMethod, const QString &location, const QString &slotMethod, Qt::ConnectionType type=Qt::AutoConnection)
 
bool connect (const QObject *sender, const QString &signalMethod, const QString &slotMethod, Qt::ConnectionType type=Qt::AutoConnection)
 
bool disconnect (const QObject *receiver, const QString &slotMethod=QString ()) const
 
bool disconnect (const QString &signalMethod, const QString &location, const QObject *receiver=nullptr, const QString &slotMethod=QString ()) const
 
bool disconnect (const QString &signalMethod=QString (), const QObject *receiver=nullptr, const QString &slotMethod=QString ()) const
 
void dumpObjectInfo ()
 
void dumpObjectTree ()
 
QList< QStringdynamicPropertyNames () const
 
virtual bool event (QEvent *event)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
template<typename T >
findChild (const QString &childName=QString ()) const
 
template<class T >
QList< T > findChildren (const QRegularExpression &regExp, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 
template<class T >
QList< T > findChildren (const QString &objName=QString (), Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 
bool inherits (const QString &className) const
 
void installEventFilter (QObject *filterObj)
 
bool isWidgetType () const
 
bool isWindowType () const
 
void killTimer (int id)
 
const QMetaObjectmetaObject () const
 
void moveToThread (QThread *targetThread)
 
QString objectName () const
 
QObject * parent () const
 
template<class T = QVariant>
property (const QString &name) const
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const QString &name, const QVariant &value)
 
bool signalsBlocked () const
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 
QThreadthread () const
 

Protected Methods

virtual void afterAnimationStep (qreal step)
 
virtual void beforeAnimationStep (qreal step)
 
- Protected Methods inherited from QObject
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const QMetaMethod &signalMethod) const
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const QMetaMethod &signalMethod) const
 
bool isSignalConnected (const QMetaMethod &signalMethod) const
 
int receivers (const QString &signal) const
 
QObject * sender () const
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *event)
 

Additional Inherited Members

- Public Signals inherited from QObject
void destroyed (QObject *obj=nullptr)
 
void objectNameChanged (const QString &objectName)
 
- Static Public Methods inherited from QObject
static bool connect (const QObject *sender, const QMetaMethod &signalMethod, const QObject *receiver, const QMetaMethod &slotMethod, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool connect (const QObject *sender, const QString &signalMethod, const QObject *receiver, const QString &slotMethod, Qt::ConnectionType type=Qt::AutoConnection, const QString &location=QString ())
 
static bool connect (const QObject *sender, const QString &signalMethod, const QString &location, const QObject *receiver, const QString &slotMethod, Qt::ConnectionType type=Qt::AutoConnection)
 
template<class Sender , class SignalClass , class... SignalArgs, class Receiver , class SlotClass , class... SlotArgs, class SlotReturn >
static bool connect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, SlotReturn (SlotClass::*slotMethod)(SlotArgs...), Qt::ConnectionType type=Qt::AutoConnection)
 
template<class Sender , class SignalClass , class... SignalArgs, class Receiver , class T >
static bool connect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, T slotLambda, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const QMetaMethod &signalMethod, const QObject *receiver, const QMetaMethod &slotMethod)
 
static bool disconnect (const QObject *sender, const QString &signalMethod, const QObject *receiver, const QString &slotMethod)
 
static bool disconnect (const QObject *sender, const QString &signalMethod, const QString &location, const QObject *receiver, const QString &slotMethod)
 
template<class Sender , class SignalClass , class... SignalArgs, class Receiver , class SlotClass , class... SlotArgs, class SlotReturn >
static bool disconnect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, SlotReturn (SlotClass::*slotMethod)(SlotArgs...))
 
template<class Sender , class SignalClass , class... SignalArgs, class Receiver >
static bool disconnect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, std::nullptr_t slotMethod=nullptr)
 
template<class Sender , class SignalClass , class... SignalArgs, class Receiver , class T >
static bool disconnect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, T slotMethod)
 
static QMetaObjectstaticMetaObject ()
 
static QString tr (const char *text, const char *comment=nullptr, std::optional< int > numArg=std::optional< int >())
 
- Properties inherited from QObject
 objectName
 

Detailed Description

The QGraphicsItemAnimation class provides simple animation support for QGraphicsItem.

The QGraphicsItemAnimation class animates a QGraphicsItem. You can schedule changes to the item's transformation matrix at specified steps. The QGraphicsItemAnimation class has a current step value. When this value changes the transformations scheduled at that step are performed. The current step of the animation is set with the setStep() function.

QGraphicsItemAnimation will do a simple linear interpolation between the nearest adjacent scheduled changes to calculate the matrix. For instance, if you set the position of an item at values 0.0 and 1.0, the animation will show the item moving in a straight line between these positions. The same is true for scaling and rotation.

It is usual to use the class with a QTimeLine. The timeline's valueChanged() signal is then connected to the setStep() slot. For example, you can set up an item for rotation by calling setRotationAt() for different step values. The animations timeline is set with the setTimeLine() function.

An example animation with a timeline follows:

QGraphicsItem *ball = new QGraphicsEllipseItem(0, 0, 20, 20);
QTimeLine *timer = new QTimeLine(5000);
timer->setFrameRange(0, 100);
animation->setItem(ball);
animation->setTimeLine(timer);
for (int i = 0; i < 200; ++i)
animation->setPosAt(i / 200.0, QPointF(i, i));
scene->setSceneRect(0, 0, 250, 250);
scene->addItem(ball);
QGraphicsView *view = new QGraphicsView(scene);
view->show();
timer->start();

Note that steps lie between 0.0 and 1.0. It may be necessary to use setUpdateInterval(). The default update interval is 40 ms. A scheduled transformation can not be removed when set, so scheduling several transformations of the same kind (e.g., rotations) at the same step is not recommended.

See also
QTimeLine, Graphics View System

Constructor & Destructor Documentation

QGraphicsItemAnimation::QGraphicsItemAnimation ( QObject parent = nullptr)

Constructs an animation object with the given parent.

QGraphicsItemAnimation::~QGraphicsItemAnimation ( )
virtual

Destroys the animation object.

Method Documentation

void QGraphicsItemAnimation::afterAnimationStep ( qreal  step)
protectedvirtual

This method is meant to be overridden in subclasses that need to execute additional code after a new step has taken place. The animation step is provided for use in cases where the action depends on its value.

void QGraphicsItemAnimation::beforeAnimationStep ( qreal  step)
protectedvirtual

This method is meant to be overridden by subclassed that needs to execute additional code before a new step takes place. The animation step is provided for use in cases where the action depends on its value.

void QGraphicsItemAnimation::clear ( )

Clears the scheduled transformations used for the animation, but retains the item and timeline.

qreal QGraphicsItemAnimation::horizontalScaleAt ( qreal  step) const

Returns the horizontal scale for the item at the specified step value.

See also
setScaleAt()
qreal QGraphicsItemAnimation::horizontalShearAt ( qreal  step) const

Returns the horizontal shear for the item at the specified step value.

See also
setShearAt()
QGraphicsItem * QGraphicsItemAnimation::item ( ) const

Returns the item on which the animation object operates.

See also
setItem()
QMatrix QGraphicsItemAnimation::matrixAt ( qreal  step) const

Returns the matrix used to transform the item at the specified step value.

QPointF QGraphicsItemAnimation::posAt ( qreal  step) const

Returns the position of the item at the given step value.

See also
setPosAt()
QList< QPair< qreal, QPointF > > QGraphicsItemAnimation::posList ( ) const

Returns all explicitly inserted positions.

See also
posAt(), setPosAt()
void QGraphicsItemAnimation::reset ( )
deprecatedslot
Deprecated:
Resets the item to its starting position and transformation.

You can call setStep(0) instead.

qreal QGraphicsItemAnimation::rotationAt ( qreal  step) const

Returns the angle at which the item is rotated at the specified step value.

See also
setRotationAt()
QList< QPair< qreal, qreal > > QGraphicsItemAnimation::rotationList ( ) const

Returns all explicitly inserted rotations.

See also
rotationAt(), setRotationAt()
QList< QPair< qreal, QPointF > > QGraphicsItemAnimation::scaleList ( ) const

Returns all explicitly inserted scales.

See also
verticalScaleAt(), horizontalScaleAt(), setScaleAt()
void QGraphicsItemAnimation::setItem ( QGraphicsItem item)

Sets the specified item to be used in the animation.

See also
item()
void QGraphicsItemAnimation::setPosAt ( qreal  step,
const QPointF point 
)

Sets the position of the item at the given step value to the point specified.

See also
posAt()
void QGraphicsItemAnimation::setRotationAt ( qreal  step,
qreal  angle 
)

Sets the rotation of the item at the given step value to the angle specified.

See also
rotationAt()
void QGraphicsItemAnimation::setScaleAt ( qreal  step,
qreal  sx,
qreal  sy 
)

Sets the scale of the item at the given step value using the horizontal and vertical scale factors specified by sx and sy.

See also
verticalScaleAt(), horizontalScaleAt()
void QGraphicsItemAnimation::setShearAt ( qreal  step,
qreal  sh,
qreal  sv 
)

Sets the shear of the item at the given step value using the horizontal and vertical shear factors specified by sh and sv.

See also
verticalShearAt(), horizontalShearAt()
void QGraphicsItemAnimation::setStep ( qreal  step)
slot

Sets the current step value for the animation, causing the transformations scheduled at this step to be performed.

void QGraphicsItemAnimation::setTimeLine ( QTimeLine timeLine)

Sets the timeline object used to control the rate of animation to the timeLine specified.

See also
timeLine()
void QGraphicsItemAnimation::setTranslationAt ( qreal  step,
qreal  dx,
qreal  dy 
)

Sets the translation of the item at the given step value using the horizontal and vertical coordinates specified by dx and dy.

See also
xTranslationAt(), yTranslationAt()
QList< QPair< qreal, QPointF > > QGraphicsItemAnimation::shearList ( ) const

Returns all explicitly inserted shears.

See also
verticalShearAt(), horizontalShearAt(), setShearAt()
QTimeLine * QGraphicsItemAnimation::timeLine ( ) const

Returns the timeline object used to control the rate at which the animation occurs.

See also
setTimeLine()
QList< QPair< qreal, QPointF > > QGraphicsItemAnimation::translationList ( ) const

Returns all explicitly inserted translations.

See also
xTranslationAt(), yTranslationAt(), setTranslationAt()
qreal QGraphicsItemAnimation::verticalScaleAt ( qreal  step) const

Returns the vertical scale for the item at the specified step value.

See also
setScaleAt()
qreal QGraphicsItemAnimation::verticalShearAt ( qreal  step) const

Returns the vertical shear for the item at the specified step value.

See also
setShearAt()
qreal QGraphicsItemAnimation::xTranslationAt ( qreal  step) const

Returns the horizontal translation of the item at the specified step value.

See also
setTranslationAt()
qreal QGraphicsItemAnimation::yTranslationAt ( qreal  step) const

Returns the vertical translation of the item at the specified step value.

See also
setTranslationAt()