2009-06-17 7 views
0

J'essaie de comprendre comment obtenir l'état de verrouillage des majuscules dans Qt (4.5), mais la seule chose que j'ai réussi à obtenir de qt est ou non le CAPS LOCK a été pressé ou relâché, puis n'a pas pu obtenir l'état réel.Caps Lock State dans Qt (ou toute API mac)

Afin de résoudre ce que j'ai essayé de la plate-forme dépendante et j'ai quelque chose qui fonctionne sur xp. Mais maintenant je cherche une solution sur mac. J'ai beaucoup googlé sans succès (ou peut-être un objectif API C ou HID Api).

Donc, ce serait génial si quelqu'un avait un id comment faire cela soit avec qt, ou sur mac. Merci à l'avance,

Boris

Répondre

1

Si regardant le code GPL ne vous entache pas, voir VirtualBox/src/VBox/Frontends/VirtualBox/src/darwin/DarwinKeyboard.cpp.

En particulier, son darwinHIDKeyboardCacheDoUpdate trouve tous les claviers, et darwinQueryHIDModifiers itère sur les claviers à la recherche de touches de modification maintenues.

Comme les commentaires dire: pour une raison quelconque, tout cela semble être assez mal documenté ...

Je n'ai pas moi-même Mac en cours d'exécution, mais VirtualBox utilise Qt 4 pour son interface graphique et encore doit creuser dans IOKit lui-même pour obtenir des touches de modification de clavier sur un Mac, donc je suppose que ce n'est pas possible avec Qt simple.

+0

J'ai vérifié et ça a l'air assez compliqué, je dois aller plus loin dans leur code. Je suis vraiment surpris Apple n'a pas fait quelque chose de plus accessible, et n'a rien documenté ... Merci quand même pour votre réponse, très appréciée! –

Questions connexes