J'ai créé un formulaire dans Qt Creator et ajouté trois QWidgets personnalisés (tous sont la même classe appelée Renderer) dans le formulaire. Je veux que tous les trois widgets à côté du formulaire soient notifiés lorsqu'un utilisateur appuie sur la touche Alt, mais je ne peux même pas en obtenir un pour le moment.Qt 4.6 et OpenGL: comment capturer des presses au clavier avec trois widgets différents à la fois?
J'ai ajouté le void keyPressEvent (QKeyEvent *) et void keyReleaseEvent (QKeyEvent *) dans la classe Renderer, mais les fonctions ne sont pas appelées du tout ... (les points d'arrêt n'ont pas été déclenchés).
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;
}
}
Est-ce qu'il me manque quelque chose ici?
De plus, y a-t-il quelque chose de spécial à faire pour que les presses clavier soient enregistrées par les trois widgets en même temps?
Merci beaucoup.
Répondu. Pour la deuxième partie de la question, j'ai corrigé le problème en faisant d'isAltPressed une variable de classe au lieu d'une variable membre privée. – confusedKid