自定义类重写QGraphicsView的event实现后,一般要再次调用其本身,不然的话QGraphicsView默认的一些功能就因为重写而消失了。
如下是自定义类.h文件
#ifndef QWGRAPHICSVIEW_H
#define QWGRAPHICSVIEW_H
#include <QObject>
#include <QGraphicsView>
#include "qwgraphicsview.h"
class QWGraphicsView : public QGraphicsView
{
Q_OBJECT
protected:
void mouseMoveEvent(QMouseEvent *event);
void mousePressEvent(QMouseEvent *event);
public:
QWGraphicsView(QWidget *parent = 0);
signals:
void mouseMovePoint(QPoint point);
void mouseClicked(QPoint point);
};
#endif // QWGRAPHICSVIEW_H
cpp文件
#include "qwgraphicsview.h"
#include <QMouseEvent>
#include <QPoint>
void QWGraphicsView::mouseMoveEvent(QMouseEvent *event)
{//鼠标移动事件
QPoint point=event->pos(); //QGraphicsView的坐标
emit mouseMovePoint(point); //释放信号
//一般要再次调用其本身
QGraphicsView::mouseMoveEvent(event);
}
void QWGraphicsView::mousePressEvent(QMouseEvent *event)
{ //鼠标左键按下事件
if (event->button()==Qt::LeftButton)
{
QPoint point=event->pos(); //QGraphicsView的坐标
emit mouseClicked(point);//释放信号
}
//一般要再次调用其本身
QGraphicsView::mousePressEvent(event);
}
QWGraphicsView::QWGraphicsView(QWidget *parent):QGraphicsView(parent)
{
}