在我的项目中,我有一个QGraphicsView
和一个QGraphicsScene
. 我需要在我的视图中添加一些额外的事件,所以我已经将QGraphicsView
.
问题是,当我设置 a 时,mousePressEvent
我会覆盖拖动模式ScrollHandDrag
。
我的问题如下:有没有办法在默认QGraphicsView
答案mousePressEvent
和自定义答案之间切换(例如,使用m_click
来区分不同的情况)?
这是我的代码:
MyQGraphicsView.h
class MyQGraphicsView : public QGraphicsView
{
Q_OBJECT
public:
MyQGraphicsView(QGraphicsScene *scene, QWidget *parent = 0);
public slots:
// void mousePressEvent(QMouseEvent * e);
private:
QGraphicsScene *m_scene;
int m_click;
};
MyQGraphicsView.cpp
MyQGraphicsView::MyQGraphicsView(QGraphicsScene *scene, QWidget *parent) :
QGraphicsView(parent),
m_scene(scene),
m_click(0)
{
setScene(m_scene);
}
/*void MyQGraphicsView::mousePressEvent(QMouseEvent * e)
{
double rad = 1;
QPointF pt = mapToScene(e->pos());
if (m_click)
{
m_scene->addEllipse(pt.x()-rad, pt.y()-rad, rad*2.0, rad*2.0, QPen(), QBrush(Qt::SolidPattern));
m_click = 0;
}
else
{
m_click = 1;
}
}*/
基本上我想要代码做的是:什么时候m_click=1
,画一个点,但是什么时候m_click=0
使用ScrollHandDrag
.
我可以让两者分开工作,但不能同时工作。