×
Namespaces

Variants
Actions

Animation with Transformation in Qt

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata
Tested with
Devices(s): 5800 xpress muzic
Compatibility
Platform(s): S60 3rd Edition FP1, S60 3rd Edition FP2, S60 5th Edition
Symbian
Article
Keywords: QGraphicsItem,QGraphicsItemAnimation
Created: mind_freak (20 Jun 2009)
Last edited: hamishwillee (11 Oct 2012)

Contents

Overview

This article shows how to rotate and move a QGraphicsItem using the simple animation support provided by QGraphicsItemAnimation.


Preconditions

  • Download and install the Qt SDK

Property

  • Sets the Z-value, or the elevation, of the item, to z. The elevation decides the stacking order of sibling (neighboring) items
text->setZValue(5.0);
  • Sets the rotation of the item at the given step value to the angle specified.
animation->setRotationAt(i / 300.0, i);

SourceCode

main.cpp

#include <QtGui/QApplication>
#include "animation.h"
#include<QGraphicsItemAnimation>
#include<QPointF>
#include<QTimeLine>
#include<QGraphicsItem>
#include<QGraphicsSimpleTextItem>
#include<QGraphicsScene>
#include<QGraphicsView>
#include<QHBoxLayout>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
 
QGraphicsItem *text = new QGraphicsSimpleTextItem("Viral");
text->setAcceptDrops(1);
//text->setOpacity(0.0);
text->setAcceptHoverEvents(true);
text->setZValue(5.0);
QHBoxLayout *lay=new QHBoxLayout();
QTimeLine *timer = new QTimeLine(5000);
timer->setFrameRange(0, 100);
 
QGraphicsItemAnimation *animation = new QGraphicsItemAnimation();
animation->setItem(text);
animation->setTimeLine(timer);
int i;
for (i = 0; i <= 250; ++i)//getting the coordinates
animation->setPosAt(i/250.0,QPointF(i, i));//positioning the graphicsItem
 
animation->setRotationAt(i / 300.0, i);//rotation of graphicsItem.
 
 
 
 
QGraphicsScene *scene = new QGraphicsScene();
scene->setSceneRect(0, 0, 250, 250);//rectuangular scene built
scene->addItem(text);
 
QGraphicsView *view = new QGraphicsView(scene);
view->show();
 
timer->start();//start timer to view animation
 
return a.exec();
}

ScreenShot

Animation001.jpg

This page was last modified on 11 October 2012, at 04:16.
112 page views in the last 30 days.
×