Menu

Tkinter - Saisies claviers

-
Bonjour,

Je commence à utiliser Tkinter et je voudrais faire des saisies claviers : Mon code :



from tkinter import *

root = Tk()

def touche(lettre):
    print(lettre)

def toucheevent():
    root.bind("<KeyPress-a>", touche)
    root.bind("<KeyPress-b>", touche)

while 1:
    toucheevent()
    

end = int(input())




Sauf que je vois pas où est l'erreur. Le programme n'affiche rien ...

Merci d'avance !
Afficher la suite 

Votre réponse

2 réponses

Messages postés
538
Date d'inscription
mercredi 20 juin 2018
Dernière intervention
17 décembre 2018
0
Merci
Il y a plusieurs problèmes.

1. Lorsque tu utilises tkinter en faisant
root = Tk()
, tu dois aussi utiliser
root.mainloop()
pour afficher quelque chose
2. La boucle infinie n'est pas convenable. La méthode
toucheevent()
n'a pas besoin d'être appelée indéfiniment.
3. La variable
end
ne sert à rien car tu ne l'exploite pas. Supprime là
input() #attendre une entree de l'utlisateur

4. La méthode
touche(lettre)
prend un paramètre qui n'est pas celui auquel tu t'attend. En effet, ce paramètre est en fait la référence vers un objet Events. Voir : http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm
Commenter la réponse de Jithel
0
Merci
Ok merci, mais du coup, c'est quoi la formule exacte pour avoir "a" quand on tape a sur le clavier ?
Jithel
Messages postés
538
Date d'inscription
mercredi 20 juin 2018
Dernière intervention
17 décembre 2018
-
A nouveau :
http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm

et à tester :

def touche(event):
   print(event.char) #tester aussi keysym et keycode
Commenter la réponse de Anonyme