Tkinter - Saisies claviers

Fermé
Anonyme - Modifié le 6 déc. 2018 à 21:05
Jithel Messages postés 843 Date d'inscription mercredi 20 juin 2018 Statut Membre Dernière intervention 31 août 2021 - 6 déc. 2018 à 20:54
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 !

2 réponses

Jithel Messages postés 843 Date d'inscription mercredi 20 juin 2018 Statut Membre Dernière intervention 31 août 2021 171
6 déc. 2018 à 16:10
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
1
Ok merci, mais du coup, c'est quoi la formule exacte pour avoir "a" quand on tape a sur le clavier ?
0
Jithel Messages postés 843 Date d'inscription mercredi 20 juin 2018 Statut Membre Dernière intervention 31 août 2021 171
6 déc. 2018 à 20:54
A nouveau :
http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm

et à tester :

def touche(event):
   print(event.char) #tester aussi keysym et keycode
0