from tkinter import *
import tkinter.font as tkFont
font = tkFont
from random import randrange
fen = Tk()
fen.focus_force()
fen.title("Main window")
fen.geometry("850x600")
fen.configure(bg='black')
global x,y
x='1111' # pour test
y='2222' # pour test
def afficheCarac(event):
global x,y
x = str(event.keysym)
y = str(event.keycode)
print("La touche frappée est la touche ", x)
print("Et son code clavier est ", y )
print("La touche frappée est la touche ", x)
print("Et son code clavier est ", y )
# si j'écris cela, j'obtiens a la première execution
# dans la console Python
# La touche frappée est la touche 1111
# Et son code clavier est 2222
# Mais si je frappe une touche clavier, la console Phyton affiche
# les deux lignes print qui sont dans la fonction
# mais pas les deux print qui sont après la fonction.
# Exemple
# La touche frappée est la touche g)
# Et son code clavier est 42
# Ce qui est très correct et semble montrer que les variables x et y
# définies dans la fonction sont bien reconnues et affectées.
# et maintenant ce que je souhaite c'est de pouvoir utiliser ces
# deux variables x et y pour par exemple les afficher dans un label
# Mais si je définis deux labels tels ceux-ci,
# label1 = Label(fen, text="Caractère : " + x)
# label2 = Label(fen, text="Code touche : " + y)
# label1.place(x=10, y=10)
# label2.place(x=10, y=32)
# J'obtiens le message d'erreur
# TypeError: can only concatenate str (not "int") to str
fen.bind("<Key>", afficheCarac)
fen.mainloop()
Voilà où j’en suis et je ne m’en sort pas. Pour faire court, ma question se résumerait simplement en : comment utiliser les retours de la fonction bind de tkinter pour les loger dans des variables reconnues par le script Python ? Si vous le souhaitez je peux vous donner des précisions sur mon projet. Merci de m’avoir lu, ce qui est gentil de votre part, mais surtout pour vos solutions que je souhaite évidentes, pour moi !
+0
-0