我有一个继承QGraphicsScene的类“SceneWindow”。我有一个鼠标移动事件,它会在场景中发出鼠标的当前x和y位置。
在我的主窗口类中,我有四个用于显示不同图像的图形视图。我在视图上创建了同一个graphicsscene类的四个对象。我想检测我的鼠标当前是哪个图形视图。 我该怎么做? 我尝试在主类中使用事件过滤器来检测视图,但它没有帮助。我通过以下方式尝试了它:
bool MainWindow::eventFilter(QObject *f_object, QEvent *f_event)
{
if(f_object == graphicsView && f_event->type() == QEvent::MouseMove)
{
qDebug() << "I am in Scene 1";
}
有人可以给出解决方案吗?
谢谢。
答案 0 :(得分:2)
*通过评论做出答案......
问题是您在QGraphicsView
上安装了事件过滤器,但鼠标事件由视口处理而不是视图本身。因此,要使事件过滤器“捕获”您需要在视口上安装它的鼠标事件:
graphicsView->viewport()->installEventFilter(filter);