выборочное игнорирование событий мыши в Qt - PullRequest
3 голосов
/ 17 декабря 2011

Я пишу приложение, которое получает данные от 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 из фильтра событий?

1 Ответ

2 голосов
/ 13 ноября 2013

Это в конечном итоге было решено с помощью сторонней библиотеки с именем «ManyMouse», которая получает данные от каждой мыши отдельно.

...