-
QKeyPressEvent
Salut à tous,
Je suis en train de créer un twister (Plus d'infos ) en C++ avec Qt. Et donc je dois pouvoir gérer l'appui sur plusieurs touches en même temps. J'ai utilisé la fonction keyPressEvent(QKeyEvent* e) pour faire ça mais le problème c'est que quand j'appuie sur deux touches en même temps (ex: touche 6 et touche 7) et qu'ensuite j'appuie sur la touche 4, mon programme ne reconnais pas l'appuie sur cette touche alors qu'il reconnais l'appuie sur d'autre touche.
Ou par exemple l'appuie sur 'a' + 'z' et ensuite 'e', le 'e' n'est pas reconnue alors que le r si ?! Oo
Si je me suis mal exprimé, je peux répondre à vos questions !
-
Bonsoir,
Si je ne me trompe pas, ce problème provient non pas de Qt mais du clavier. Selon le clavier, appuyer sur certaines touches peut mener l'appui à une de plus à ne pas fonctionner tel que l'on le souhaite.
Bonne continuation,
Amnell.
-
Ok, merci! Il n'y a donc pas de solution pour ce problème ?
-
Bonsoir,
À part changer de modèle de clavier (si cela vient réellement de là), je ne vois pas.
Bonne continuation,
Amnell.
-
C'est un problème classique (les utilisateurs des jeux musicaux comme StepMania, Dance Dance Revolution, Guitar Here et Frets on Fire s'en plaignent) du à l'électronique du clavier. En effet, dans la méthode simple, pour détecter la touche appuie on utilise une grille sur laquelle on détecte la ligne et la colonne déclenchée. Mais si on appuie sur deux éléments sur la même ligne, il y en a un qui sera "caché" par l'autre.
Comme le twister demande vraiment trop de touches simultanées, je doute de l'existence d'un clavier sur lequel cela fonctionnerai.
-
Je ne savais pas, c'est très intéressant ! Merci de ta réponse :ccool: