Я создал форму в 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;
}
}
Я что-то здесь упускаю?
Кроме того, есть ли что-то особенное, что я должен сделать, чтобы нажатия клавиш регистрировались всеми тремя виджетами одновременно?
Большое спасибо.