选择性地忽略Qt中的鼠标事件

selectively ignoring mouse events in Qt

本文关键字:鼠标 事件 Qt 选择性      更新时间:2023-10-16

我正在编写一个从3个鼠标获得输入的应用程序。其中2个鼠标用于手势,它们的输入是单独处理的,第三个应该正常工作。我已经成功地安装了一个事件过滤器(见下文),它运行我自己的鼠标处理代码(processMouse())。

然而,当试图让过滤器忽略来自某些鼠标的事件时(由processMouse()的布尔返回值决定),没有任何事情被忽略。

我已经尝试使用正常的true/false返回值,将事件重置为"None"事件,调用它的忽略函数,但鼠标仍然保持移动,即使我告诉它忽略事件。

bool MainWindow::eventFilter(QObject *obj, QEvent *event){
    if ((event->type() == QEvent::MouseMove) ||
        (event->type() == QEvent::MouseButtonPress)){
        if (configured){
            if (!processMouse()){
                //event->ignore();
                //event = new QEvent(QEvent::None);
            }
        }
        return true;
    }
    return false;
}

如何选择性地忽略事件过滤器中的MouseMove事件?

这最终通过使用名为"ManyMouse"的第三方库解决,该库分别接收每个鼠标的输入。