Bonjour, je suis actuellement en train de réaliser une interface de commande d'un petit robot, j'envoie mes instructions en série à un arduino qui s'occupe de commander les moteurs via un controller.
Afin que cela soit naturel pour l'utilisateur, je souhaite que les instructions soient envoyées par l'appuie sur les flèches du clavier. Pour avancer, la touche flèche du haut sera donc maintenue enfoncée.
Il faut donc que :
- Lorsque j'appuie sur une touche, ma fonction d'envoi soit appelée (OK)
- Lorsque je maintiens cette touche enfoncée, rien ne se passe
- Lorsque je relâche cette touche, ma fonction soit appelée (OK)
Vous avez surement compris ou se situe mon problème...
J'ai utilisé deux solutions pour parvenir a mes fins mais qui n'ont pas été concluantes :
1ère solution :
J'ai crée un Pushbutton dont le signal pressed appelait ma fonction d'envoi en slot.
A ma grande surprise, je croyais avoir trouvé la solution lorsque, n'ayant ajouté que keyPressEvent, le maintient de la touche n'envoyait qu'une commande. Mais lorsque j'ai ajouté le keyReleaseEvent, la même scene qu'avec le shortcut s'est produite...
Voila vous savez tout !
Donc si quelqu'un sait comment il est possible de ne prendre en compte que le premier appui d'une touche ainsi que son relâchement, je suis preneur...
Merci d'avoir pris le temps de lire ce post et bonne journée à vous :)
Pour l'instant pour palier mon problème j'ai ajouter la prise en compte d'une manette dont les boutons appellent mes slot d'envoi de données mais bon ca ne fonctionne toujours pas au clavier ^^
Plutôt que d'envoyer une commande lors du relâchement de la touche, tu peux considérer que par défaut, si le robot n'avance pas ou ne recule pas, il est à l'arrêt. Donc plus besoin de la commande "S".
Eh bien en fait je trouvais ça plus léger... Car du coup avec ta méthode je dois sans cesse dire envoyer a la carte que je veux qu'il avance. Or la je n'ai qu'a lui envoyer une fois... Je trouvais ca plus pratique car ce ne sont pas les seuls données qui doivent transiter et j'ai déjà essayé d'envoyer des commandes avec un débit plus rapide ca n'a pas bien fonctionné...
Puis je me dis qu'il doit bien y avoir une solution pour modifier ce shortcut tout de même !!!
Merci tout de même d'avoir pris le temps de répondre Bonne soirée!
[QT] Evenements clavier
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Eug