gpt4 book ai didi

Qt 鼠标移动事件未被事件过滤器捕获

转载 作者:行者123 更新时间:2023-12-02 03:12:04 25 4
gpt4 key购买 nike

我似乎无法在 eventFilter 中捕获 QEvent::MouseMove 类型的事件。

这是我的事件过滤器:

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 事件。

可能是什么问题?

最佳答案

事实证明我正在寻找错误类型的 mouseMove 事件。

我应该捕获 QEvent::GraphicsSceneMouseMove 事件而不是 QEvent::MouseMove 事件。

关于Qt 鼠标移动事件未被事件过滤器捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6439681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com