#ifndef __IMAGES_H_
#define __IMAGES_H_
#include <QtCore>
#include <QtGui>
{
Q_OBJECT
public:
void adjust();
void startEvent();
void stopEvent();
private:
double z;
public slots:
void setFrame(int frame);
};
#endif
#ifndef __IMAGES_H_
#define __IMAGES_H_
#include <QtCore>
#include <QtGui>
class Images:public QObject,public QGraphicsPixmapItem
{
Q_OBJECT
public:
Images(const QPixmap &pixmap,QGraphicsItem *parent=0,QGraphicsScene *scene=0);
void adjust();
void startEvent();
void stopEvent();
private:
QTimeLine timeLine;
double z;
public slots:
void setFrame(int frame);
};
#endif
To copy to clipboard, switch view to plain text mode
#include "Images.h"
{
setAcceptsHoverEvents(true);
timeLine.setDuration(150);
timeLine.setFrameRange(0,150);
if(connect(&timeLine,SIGNAL(frameChanged(int)),this,SLOT(setFrame(int)))==false)
{
dialog->resize(50,50);
dialog->show();
}
adjust();
}
void Images::adjust()
{
matrix.scale(120/boundingRect().width(),110/boundingRect().height());//Matrixing görevi
setMatrix(matrix);
//transformatin yapa
}
void Images::setFrame(int frame)
{
adjust();
QPointF center
=boundingRect
().
center();
translate(center.x(),center.y());
scale(1+frame/330.0,1+frame/330.0);
translate(-center.x(),-center.y());
}
void Images::startEvent()
{
if (timeLine.
state() == QTimeLine::NotRunning) timeLine.start();
}
void Images::stopEvent()
{
if (timeLine.
state() == QTimeLine::NotRunning) timeLine.start();
}
#include "Images.h"
Images::Images(const QPixmap& pixmap,QGraphicsItem *parent,QGraphicsScene *scene)
:QGraphicsPixmapItem(pixmap,parent,scene)
{
setAcceptsHoverEvents(true);
setFlags(QGraphicsItem::ItemIsFocusable);
setFlags(QGraphicsItem::ItemIsSelectable);
timeLine.setDuration(150);
timeLine.setFrameRange(0,150);
if(connect(&timeLine,SIGNAL(frameChanged(int)),this,SLOT(setFrame(int)))==false)
{
QDialog *dialog=new QDialog;
dialog->resize(50,50);
dialog->show();
}
adjust();
}
void Images::adjust()
{
QMatrix matrix;
matrix.scale(120/boundingRect().width(),110/boundingRect().height());//Matrixing görevi
setMatrix(matrix);
//transformatin yapa
}
void Images::setFrame(int frame)
{
adjust();
QPointF center=boundingRect().center();
translate(center.x(),center.y());
scale(1+frame/330.0,1+frame/330.0);
translate(-center.x(),-center.y());
}
void Images::startEvent()
{
timeLine.setDirection(QTimeLine::Forward);
if (timeLine.state() == QTimeLine::NotRunning)
timeLine.start();
}
void Images::stopEvent()
{
timeLine.setDirection(QTimeLine::Backward);
if (timeLine.state() == QTimeLine::NotRunning)
timeLine.start();
}
To copy to clipboard, switch view to plain text mode
#ifndef __IMENU_PAGE_H_
#define __IMENU_PAGE_H_
#include <QtGui>
#include "Images.h"
#define PICTURE_NUMBER 6
{
Q_OBJECT
public:
void addItems();
private:
QVector<Images *> images;
public slots:
};
#endif
#include "ImenuPage.h"
ImenuPage
::ImenuPage(QWidget *parent
){
scene->setSceneRect(230, 100, 561, 321);
//setFixedSize(561, 321);
setScene(scene);
addItems();
}
void ImenuPage::addItems()
{
list<<"A.png"<<"B.png"<<"C.png"<<"D.png"<<"E.png"<<"F.png";
int satir,sutun;
int index=0;
int imageOffset = 150;
int leftMargin = 270;
int topMargin = 120;
int columnOffset=0;
int x,y;
for(satir=0;satir<2;satir++)
{
y=topMargin+satir*140;
for(sutun=0;sutun<3;sutun++)
{
x=leftMargin+sutun*180;
Images
* item
=new Images
(QPixmap(list
[index
]));
images.push_back(item);
scene->addItem(item);
item->setPos(x,y);
item->setData(0,index);
index++;
}
}
}
void ImenuPage
::keyPressEvent(QKeyEvent *event
) {
static int index=0;
static int ilk=0;
if(ilk==0)
{
images[index]->startEvent();
index++;
ilk++;
}
else
{
images[index]->startEvent();
if(index==0)
images[PICTURE_NUMBER-1]->stopEvent();
else
images[index-1]->stopEvent();
index++;
}
index%=PICTURE_NUMBER;
}
void ImenuPage
::signalEvent(QKeyEvent *event
) {
keyPressEvent(event);
}
#ifndef __IMENU_PAGE_H_
#define __IMENU_PAGE_H_
#include <QtGui>
#include "Images.h"
#define PICTURE_NUMBER 6
class ImenuPage:public QGraphicsView
{
Q_OBJECT
public:
ImenuPage(QWidget *parent=0);
void addItems();
void keyPressEvent(QKeyEvent *event);
private:
QGraphicsScene *scene;
QVector<Images *> images;
public slots:
void signalEvent(QKeyEvent *event);
};
#endif
#include "ImenuPage.h"
ImenuPage::ImenuPage(QWidget *parent)
:QGraphicsView(parent)
{
scene=new QGraphicsScene(this);
scene->setSceneRect(230, 100, 561, 321);
//setFixedSize(561, 321);
setScene(scene);
addItems();
}
void ImenuPage::addItems()
{
QStringList list;
list<<"A.png"<<"B.png"<<"C.png"<<"D.png"<<"E.png"<<"F.png";
int satir,sutun;
int index=0;
int imageOffset = 150;
int leftMargin = 270;
int topMargin = 120;
int columnOffset=0;
int x,y;
for(satir=0;satir<2;satir++)
{
y=topMargin+satir*140;
for(sutun=0;sutun<3;sutun++)
{
x=leftMargin+sutun*180;
Images* item=new Images(QPixmap(list[index]));
images.push_back(item);
scene->addItem(item);
item->setPos(x,y);
item->setData(0,index);
index++;
}
}
}
void ImenuPage::keyPressEvent(QKeyEvent *event)
{
static int index=0;
static int ilk=0;
if(ilk==0)
{
images[index]->startEvent();
index++;
ilk++;
}
else
{
images[index]->startEvent();
if(index==0)
images[PICTURE_NUMBER-1]->stopEvent();
else
images[index-1]->stopEvent();
index++;
}
index%=PICTURE_NUMBER;
}
void ImenuPage::signalEvent(QKeyEvent *event)
{
keyPressEvent(event);
}
To copy to clipboard, switch view to plain text mode
Note:When I compiled using nmake, error wasnt seemed.Application worked.But I couldnt achieve using visual studio.(I have no commercial yet.Because we are in test still.In commercial application we will get.)
Bookmarks