Bonjour,

Voila, j'ai récupéré un code qui permet de détecter les touches du clavier.

Ce code fonctionne très bien à l'exception d'un problème avec la touche 'Alt_L'.

Lorsque je clique sur la touche 'Alt_L' le code la reconnaît.

Cependant, lorsque je clique sur une autre touche juste après alors il n'y a plus aucune détection qui s'effectue : c'est 'bloqué' en quelque sorte.

Ce n'est qu'en appuyant une seconde fois sur la touche que la détection de cette dernière s'effectue.

Quelqu'un saurait-il me dire pourquoi ce phénomène se produit et comment on peut y remédier, c'est-à-dire comment faire en sorte qu'après avoir appuyé sur 'Alt_L' la touche suivante sur laquelle on appuie puisse être détectée ?

voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
from tkinter import *
from string import *
 
def affiche(event):
    global frl
    temp0=k.get()
    temp1=event.keysym_num
    temp2=event.keysym
    lb['text']=temp2
    print(temp0,temp1,temp2)
    if temp0==1:
        l['text']='chr( '+str(event.num)+' )'
    else:
        if temp1<256:
            l['text']='chr( '+str(temp1)+' )'
    if temp2=='Shift_L' or temp2=='Shift_R':
      frl[0]['bg']='red'
    elif temp2=='Control_L' or temp2=='Control_R':
        frl[1]['bg']='red'
    elif temp2=='Alt_R':
      frl[2]['bg']='red'
    else:
      pass
 
def verdit(event):
    global frl
    for i in frl:
      i['bg']='green'
 
def press(event):
    temp=k.get()
    if temp==1:
        b["text"]="N° Lettres (clic pour touches)"
    else:
        b["text"]="N° Touches (clic pour lettres)"
 
spkey=('SHIFT','CTRL','ALT_GR')
frl=[]
 
f=Tk()
f.title('Détection des touches frappées')
 
k=IntVar()
 
b=Checkbutton(f,width=25,font=("Arial",8),justify='center',variable=k,text='N° Lettres (clic pour touches)')
b.bind('<Button>',press)
b.pack(side="top")
 
 
l=Label(f,width=15,font=("Arial",25),relief='groove',justify='center')
l.pack(side='top')
lb=Label(f,width=25,font=("Arial Italic",10),relief='flat',justify='center')
lb.pack(side='top')
fr=Frame(f)
fr.pack(side='top')
for i in range(3):
  temp=Label(fr,width=7,font=("Arial Narrow",9),justify='center',relief='groove',bg='green',text=spkey[i])
  temp.pack(side='left')
  frl.append(temp)
f.bind('<Any Key>',affiche)
f.bind('<Any KeyRelease>',verdit)
f.mainloop()