Изменение в функции eventFilter вызывает странное поведение QGraphicScene

У меня есть программа Qt с QGraphicScene внутри QGraphicsView поверх QMainWindow.
События обрабатываются QMainWindow с использованием функции eventFilter.
Тело функции выглядит примерно так:

bool Window::eventFilter(QObject *, QEvent *event) {
QEvent::Type type = event->type();

if (type == QEvent::KeyPress) {
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);

switch(keyEvent->key()) {
case Qt::Key_A:
case Qt::Key_B:
case Qt::Key_C:
case Qt::Key_D:
// call a function that uses the current mouse position on the graphics scene
break;
default:
QLocale loc = QApplication::keyboardInputLocale();
if(loc.language() != QLocale::English) {
QString message = "A non-English key was pressed";
showMessage(message, QMessageBox::Warning);
}
}

return true;
}

return false;
}

Недавно я добавил часть «по умолчанию», и с тех пор координаты, которые используются в случаях A, B, C, D, полностью неверны. Кроме того, если я добавлю простой отпечаток в любом месте функции, ошибка исчезнет, ​​и будут использованы правильные координаты мыши.

Что может вызвать это?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]