
Soit la doc suivante sur les modifiers de Windows :
https://msdn.microsoft.com/fr-fr/library/windows/desktop/ms646309Soit la doc suivante sur les évènements claviers de Qt :
http://doc.qt.io/qt-5/qkeyevent.html#public-functionsSoit le code suivant, du niveau CE1-CE2 :
#include <windows.h>
...
quint32 modifiers = keyEvent->nativeModifiers() & 0x000F; // Clear possible MOD_NOREPEAT ?
...
// Display the name of the pressed modifiers
if ((modifiers & MOD_CONTROL) != 0) {
buttonText += tr("Ctrl + ");
}
if ((modifiers & MOD_ALT) != 0) {
buttonText += tr("Alt + ");
}
if ((modifiers & MOD_SHIFT) != 0) {
buttonText += tr("Shift + ");
}Le code est donc censé afficher une combinaison de "Ctrl + ", "Alt + ", "Shift + " dans un bouton, c'est très basique.
Résultat :
- quand j'appuie sur Alt, le bouton affiche Alt +
- quand j'appuie sur Ctrl, le bouton affiche Shift +
- quand j'appuie sur Shift, le bouton affiche Ctrl +
- Shift droit, AltGr et Ctrl droit déconnent complètementSi je remplace
keyEvent->nativeModifiers() par
keyEvent->modifiers(), qui renvoie
les modifieurs de Qt, alors mon code marche comme attendu.
Ca m'ira, parce qu'il est aisé de faire la conversion en sens inverse. Mais quand même, ça me chagrine ce truc, j'espérais trouver les modifieurs d'origine, tout simplement. En espérant que ça ne me joue pas un tour du même genre pour les Virtual Keys (les autres touches du clavier).
Ou je rate un truc énorme, ou Qt déconne. Mais comme le gestionnaire de clavier de Qt marche quand même bien dans l'ensemble, je dois rater un truc énorme.
Merci bien pour votre aide
