All pastes #984802 Raw Edit

Untitled

public text v1 · immutable
·published 2008-04-14 15:58 UTC
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