rendered paste body#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QDebug>
#include <QMainWindow>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QGraphicsRectItem>
#include <QGraphicsItemGroup>
class myBox : public QGraphicsRectItem
{
public:
myBox ( qreal x, qreal y, qreal width, qreal height, QGraphicsItem * parent = 0 )
: QGraphicsRectItem (x, y, width, height, parent)
{
setAcceptsHoverEvents(true); //Ставим труЪ, иначе эвенты при наведении будут игнорироваться
}
virtual void hoverEnterEvent ( QGraphicsSceneHoverEvent * event )
{ qDebug()<<"myBox Hover Enter event"; }
virtual void hoverLeaveEvent ( QGraphicsSceneHoverEvent * event )
{ qDebug()<<"myBox Hover Leave Event"; }
virtual void mousePressEvent ( QGraphicsSceneMouseEvent * event )
{ qDebug()<<"myBox Press event"; }
virtual void mouseMoveEvent ( QGraphicsSceneMouseEvent * event )
{ qDebug()<<"myBox Move Event"; }
};
class myGroup : public QGraphicsItemGroup
{
public:
myGroup()
{
setHandlesChildEvents(false);
setAcceptsHoverEvents(true);
body = new QGraphicsRectItem(0,0,20,20);
body2 = new myBox(0, -5, 5, 5);
addToGroup(body);
addToGroup(body2);
}
inline virtual void mousePressEvent ( QGraphicsSceneMouseEvent * event )
{ qDebug()<<"myGroup press Event!"; QGraphicsItemGroup::mousePressEvent(event); }
inline virtual void mouseMoveEvent ( QGraphicsSceneMouseEvent * event )
{ qDebug()<<"myGroup move Event"; QGraphicsItemGroup::mousePressEvent(event); }
private:
QGraphicsRectItem* body;
myBox* body2;
};
class MainWindow : public QMainWindow
{
public:
MainWindow(QWidget *parent = 0, Qt::WindowFlags flags = 0);
private:
QGraphicsView *view;
QGraphicsScene *scene;
myGroup *object;
};
#endif