Я создал форму в Qt Creator и добавил в форму три пользовательских QWidget (все они относятся к одному классу с именем Renderer). Я хочу, чтобы все три виджета, кроме формы, получали уведомление, когда пользователь нажимает клавишу Alt, но в данный момент я не могу заставить работать даже один из них.
Я добавил void keyPressEvent(QKeyEvent *) и void keyReleaseEvent(QKeyEvent *) в класс Renderer, но функции вообще не вызываются... (точки останова не срабатывали) Функции нажатия клавиш защищены.
void Renderer::keyPressEvent(QKeyEvent *event) {
switch(event->key()) {
case Qt::Key_Alt: {
isAltPressed = true;
cout << "alt got pressed" << endl;
break;
}
default:
break;
}
}
void Renderer::keyReleaseEvent(QKeyEvent *event) {
switch(event->key()) {
case Qt::Key_Alt: {
isAltPressed = false;
cout << "alt released" << endl;
break;
}
default:
break;
}
}
Я что-то упустил здесь?
Кроме того, есть ли что-то особенное, что мне нужно сделать, чтобы нажатия клавиш регистрировались всеми тремя виджетами одновременно?
Большое спасибо.