我似乎无法在我的eventFilter中捕获QEvent :: MouseMove类型的事件。Qt鼠标移动事件没有被事件过滤器捕获
这里是我的事件过滤器:
bool
MapWidget_c::eventFilter(QObject *obj, QEvent *ev)
{
if(obj == graphicsGeoMap_mp ||
obj == graphicsScene_mp ||
obj == graphicsView_mp)
{
if(ev->type() == QEvent::MouseMove)
{
QMouseEvent *mouseEvent = static_cast< QMouseEvent* >(ev);
mouseMoveEvent(mouseEvent);
return true;
}
else
{
return false;
}
}
else
{
// pass the event on to the parent class
return QWidget::eventFilter(obj, ev);
}
}
我安装过滤器这样的:
graphicsGeoMap_mp->installEventFilter(this); //QGraphicsGeoMap
graphicsScene_mp->installEventFilter(this); //QGraphicsScene
graphicsView_mp->installEventFilter(this); //QGraphicsScene
事件过滤器似乎赶上mousePress和mouseRelease事件就好了,但不是的mouseMove。
可能是什么问题?