Touche mappage événement presse qt

Comment détecter quelle touche a été pressée par un utilisateur?
J’ai essayé de chercher sur le Web, mais je n’ai rien trouvé d’intéressant.
Merci.

Si vous souhaitez détecter les pressions de touche de manière globale (utile pour les raccourcis d’application, etc.), vous devez QObject un de vos QObject comme eventFilter pour l’application, en surchargeant d’abord QObject::eventFilter :

 bool cKeyPressEater::eventFilter(QObject *Object, QEvent *Event) { if (Event->type() == QEvent::KeyPress) { QKeyEvent *KeyEvent = (QKeyEvent*)Event; switch(KeyEvent->key()) { case Qt::Key_F1: //do something break; default: break; } } } 

… puis en installant cet object en tant que eventFilter pour votre application:

 QObject *KeyPressEater = GetYourEventFilterObject(); QCoreApplication::instance()->installEventFilter(KeyPressEater); 

Sinon, comme @Mat le dit ci-dessus, surchargez simplement QWidget::keyPressEvent . Vous devez setFocusPolicy et avoir le focus pour pouvoir appuyer sur les touches.