1、main.cpp
#include <QApplication>
#include <QGraphicsScene>
#include <QGraphicsView>
#include "myitem.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QGraphicsScene scene(0, 0, 250, 250);
MyItem *item = new MyItem;
item->setPos(24, 24);
scene.addItem(item);
QGraphicsView view(&scene);
view.show();
return a.exec();
}
2、myitem.h
#ifndef MYITEM_H
#define MYITEM_H
#include <QGraphicsItem>
#include <QPainter>
#include <QWidget>
#include <QDebug>
#include <QGraphicsSceneMouseEvent>
class MyItem : public QGraphicsItem
{
public:
MyItem(QGraphicsItem *parent = 0){}
~MyItem(){}
QRectF boundingRect() const
{
return QRectF(0, 0, 200, 200);
}
void paint(QPainter *painter,
const QStyleOptionGraphicsItem *,
QWidget *)
{
painter->setRenderHint(QPainter::Antialiasing);
painter->setBrush(Qt::blue);
painter->drawRoundedRect(0, 0, 200, 200, 5, 5);
}
protected:
void mousePressEvent(QGraphicsSceneMouseEvent *){
qDebug("Mouse button clicked");
}
void mouseReleaseEvent(QGraphicsSceneMouseEvent *){
qDebug("Mouse released clicked");
}
void mouseMoveEvent(QGraphicsSceneMouseEvent *){
qDebug("Mouse move");
}
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *){
qDebug("Mouse double clicked");
}
};
#endif // MYITEM_H