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

时间:2011-12-17 15:03:27

标签: c++ qt events mouse filtering

我正在编写一个从3只老鼠那里获取输入的应用程序。 2只小鼠用于手势,它们的输入分开处理,第3只应该正常运行。 我已成功安装了一个eventfilter(见下文),它运行我自己的鼠标处理代码( processMouse())。

但是,当试图让过滤器忽略某些鼠标的事件时(由 processMouse()的布尔返回值确定),什么都不会被忽略。

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

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;
}

我如何有选择地忽略来自eventfilter的MouseMove事件?

1 个答案:

答案 0 :(得分:2)

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