Problème Evénement Python Tkinter
Résolu
Nico_63
Messages postés
41
Date d'inscription
Statut
Membre
Dernière intervention
-
Nico_63 Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
Nico_63 Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
Bonjour
J’ai écrit un bout de code ci-dessous pour expliquer mon problème.
Ce code-là fonctionne, mais je voudrais que le déplacement du bloc soit opéré non par le clic gauche du pavé numérique mais par l’appui sur une touche du clavier, par exemple la touche de la lettre H.
Mais si je remplace '<Button-1>' par ce qui est préconnisé à savoir ‘<KeyPress-H>’, le code ne fonctionne plus. J’ai essayé ‘<KeyPress_H>’, ‘<KeyPress-h>’, ‘<KeyPress_h>’ , ‘<KP-H>’, ‘<KP_H>’,
‘<KP-h>’, ‘<KP_h>’… Rien ne fonctionne. C’est pareil évidemment pour n’importe quelle touche de lettre ou de chiffre.
Quelqu’un peut-il m’expliquer ce que je fais mal ? Merci d’avance.
Code :
from tkinter import *
def dépl_gauche(event):
global x2, y2
x2 = x2-20
can.coords(bloc,x2,y2,x2+60,y2+10)
x2, y2 = 130, 260
fen = Tk()
can = Canvas(fen, bg = 'dark grey', width = 320, height = 320)
can.pack()
bloc = can.create_rectangle(x2,y2,x2+60,y2+10,outline = 'purple',fill = 'purple')
can.bind('<Button-1>',dépl_gauche)
fen.mainloop()
J’ai écrit un bout de code ci-dessous pour expliquer mon problème.
Ce code-là fonctionne, mais je voudrais que le déplacement du bloc soit opéré non par le clic gauche du pavé numérique mais par l’appui sur une touche du clavier, par exemple la touche de la lettre H.
Mais si je remplace '<Button-1>' par ce qui est préconnisé à savoir ‘<KeyPress-H>’, le code ne fonctionne plus. J’ai essayé ‘<KeyPress_H>’, ‘<KeyPress-h>’, ‘<KeyPress_h>’ , ‘<KP-H>’, ‘<KP_H>’,
‘<KP-h>’, ‘<KP_h>’… Rien ne fonctionne. C’est pareil évidemment pour n’importe quelle touche de lettre ou de chiffre.
Quelqu’un peut-il m’expliquer ce que je fais mal ? Merci d’avance.
Code :
from tkinter import *
def dépl_gauche(event):
global x2, y2
x2 = x2-20
can.coords(bloc,x2,y2,x2+60,y2+10)
x2, y2 = 130, 260
fen = Tk()
can = Canvas(fen, bg = 'dark grey', width = 320, height = 320)
can.pack()
bloc = can.create_rectangle(x2,y2,x2+60,y2+10,outline = 'purple',fill = 'purple')
can.bind('<Button-1>',dépl_gauche)
fen.mainloop()
4 réponses
OK merci.
Code :
Code :
from tkinter import * def dépl_gauche(event): global x2, y2 x2 = x2-20 can.coords(bloc,x2,y2,x2+60,y2+10) x2, y2 = 130, 260 fen = Tk() can = Canvas(fen, bg = 'dark grey', width = 320, height = 320) can.pack() bloc = can.create_rectangle(x2,y2,x2+60,y2+10,outline = 'purple',fill = 'purple') can.bind('<Button-1>',dépl_gauche) fen.mainloop()
il faut :
trouvé là : http://s15847115.domainepardefaut.fr/python/tkinter/event_clavier.html
can.focus_force() can.bind("a",dépl_gauche)
trouvé là : http://s15847115.domainepardefaut.fr/python/tkinter/event_clavier.html
Merci beaucoup jee pee.
Cela résout largement mon problème !
A noter: si les indications données fonctionnent bien pour les lettres majuscules, minuscules, les chiffres, les flèches (N, S, W, E), entrée ou F1, cela ne fonctionne pas par exemple pour la touche espace...
Moi j'étais sur le lien d'aide Tkinker ci-dessous, mais à aucun moment ça ne parle du "focus_force()" et les codes de touches ne sont pas corrects ...??
http://tkinter.fdex.eu/doc/event.html
Merci à toi
Cela résout largement mon problème !
A noter: si les indications données fonctionnent bien pour les lettres majuscules, minuscules, les chiffres, les flèches (N, S, W, E), entrée ou F1, cela ne fonctionne pas par exemple pour la touche espace...
Moi j'étais sur le lien d'aide Tkinker ci-dessous, mais à aucun moment ça ne parle du "focus_force()" et les codes de touches ne sont pas corrects ...??
http://tkinter.fdex.eu/doc/event.html
Merci à toi
voir : http://tkinter.fdex.eu/doc/uwm.html#focus_force donc il doit y avoir une autre façon de procéder plus légère
chez moi "<F1>" ou "<space>" fonctionnent
chez moi "<F1>" ou "<space>" fonctionnent
Un petit tuto là : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
ce qui donne