重写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类注意事项的主要内容,如果未能解决你的问题,请参考以下文章

QGraphicsView 自定义滚动条

在另一个类的表单上添加 QGraphicsView

使用 Qt 的 QGraphicsScene/QGraphicsView 进行 2D 游戏

java-方法重写的注意事项

QGraphicsView图像缩放

QGraphicsView右键鼠标按下事件问题