#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include 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