Problème avec .bind Tkinter
Résolu
Mattgamer
-
Mattgamer2 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Mattgamer2 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
8 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 583
bonjour,
"ca ne marche pas": peux-tu donner quelques informations factuelles?
merci d'utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
"ca ne marche pas": peux-tu donner quelques informations factuelles?
merci d'utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Bonjour yg_be,
desolé, je n'ai pas été précis. Le label personnage est censé être repositionné, mais il ne se passe rien. J'ai fait quelque test avec print, et il semble que le programme n'accede meme pas a la fonction 'gest_mouvement_haut' (ça ne renvoie rien dans la console).
Voici mon la partie de mon code impliquée :
desolé, je n'ai pas été précis. Le label personnage est censé être repositionné, mais il ne se passe rien. J'ai fait quelque test avec print, et il semble que le programme n'accede meme pas a la fonction 'gest_mouvement_haut' (ça ne renvoie rien dans la console).
Voici mon la partie de mon code impliquée :
from Tkinter import * xfirstperson=11 yfirstperson=6 def gest_mouvement_haut(event) : mouvement_haut() def mouvement_haut() : global yfirstperson global xfirstperson if yfirstperson != 0 : yfirstperson += 1 lblfirstperson.grid(column=xfirstperson, row=yfirstperson) fenetre = Tk() # Creation de la fenetre racine fenetre.title('Escape Game 2D') frame = Frame(fenetre, bd=1, bg='black', relief='solid') frame.grid(column=0, row=0) firstpersonfile="C:\users\Administrateur\Desktop\Python\Perso\Sauvegarde et dossiers utilise par python\FirstPerson.gif" firstpersonimg = PhotoImage(file = firstpersonfile) gifsdict[firstpersonfile] = firstpersonimg lblfirstperson = Label(frame, image=firstpersonimg, bg='white') lblfirstperson.grid(column=xfirstperson, row=yfirstperson) lblfirstperson.bind('<Up>', gest_mouvement_haut) fenetre.mainloop()
Bonjour Mattgamer2,
C'est normal
lblfirstperson est un Label, donc un objet pour écrire du texte, et donc il n'est jamais activé par
un appui de touche ou un clic de souris
Il faudrait utiliser un bouton ou une Entry
De plus, tu devrais agrandir ta fenêtre:
C'est normal
lblfirstperson.bind('<Up>', gest_mouvement_haut)
lblfirstperson est un Label, donc un objet pour écrire du texte, et donc il n'est jamais activé par
un appui de touche ou un clic de souris
Il faudrait utiliser un bouton ou une Entry
De plus, tu devrais agrandir ta fenêtre:
fenetre.geometry('300x200+300+100')
Bonjour Phil,
j'ai modifier la nature de lblfirstperson. Par contre, ça ne marche toujours pas. J'ai mis une print dans la fonction gest_mouvement_haut, mais lorsque je lance le programme et que j'appuie sur la flèche du haut, le bouton reste immobile et rien n'est renvoyé dans la console...
j'ai modifier la nature de lblfirstperson. Par contre, ça ne marche toujours pas. J'ai mis une print dans la fonction gest_mouvement_haut, mais lorsque je lance le programme et que j'appuie sur la flèche du haut, le bouton reste immobile et rien n'est renvoyé dans la console...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
oui mais le bouton n'est activé que si on le clique, et de plus, tu n'as pas mis le bind dessus
de plus, je me demande si ca marche avec grid(column=xfirstperson, row=yfirstperson)
Ici, un exemple qui fonctionne chez moi en utilisant .place()
Fais un copié/collé du code dans un nouveau fichier et execute-le pour voir et dis-moi si ca marche:
de plus, je me demande si ca marche avec grid(column=xfirstperson, row=yfirstperson)
Ici, un exemple qui fonctionne chez moi en utilisant .place()
Fais un copié/collé du code dans un nouveau fichier et execute-le pour voir et dis-moi si ca marche:
from Tkinter import * xfirstperson=11 yfirstperson=6 def gest_mouvement_haut(event) : mouvement_haut() def mouvement_haut() : global yfirstperson global xfirstperson if yfirstperson != 0 : yfirstperson += 5 e2.place(x = xfirstperson,y = yfirstperson) fenetre = Tk() # Creation de la fenetre racine fenetre.title('Escape Game 2D') fenetre.geometry('300x200+300+100') e2 = Entry(fenetre) e2.grid(column=xfirstperson, row=yfirstperson) e2.bind('<Up>', gest_mouvement_haut) e2.focus() fenetre.mainloop()