重写QGraphicsView类注意事项
Posted 可峰科技
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重写QGraphicsView类注意事项相关的知识,希望对你有一定的参考价值。
自定义类重写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)
以上是关于重写QGraphicsView类注意事项的主要内容,如果未能解决你的问题,请参考以下文章