Problème avec .bind Tkinter
Résolu/Fermé
Mattgamer
-
2 nov. 2020 à 18:05
Mattgamer2 Messages postés 4 Date d'inscription lundi 2 novembre 2020 Statut Membre Dernière intervention 3 novembre 2020 - 3 nov. 2020 à 13:46
Mattgamer2 Messages postés 4 Date d'inscription lundi 2 novembre 2020 Statut Membre Dernière intervention 3 novembre 2020 - 3 nov. 2020 à 13:46
A voir également:
- Problème avec .bind Tkinter
- Telecharger tkinter - Forum Python
- Tkinter global - Forum Python
- Tableau tkinter - Forum Python
- Tkinter treeview bind selection - Forum Python
- Tkinter macos ✓ - Forum Python
8 réponses
yg_be
Messages postés
23525
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 avril 2025
Ambassadeur
1 577
2 nov. 2020 à 20:50
2 nov. 2020 à 20:50
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
Mattgamer2
Messages postés
4
Date d'inscription
lundi 2 novembre 2020
Statut
Membre
Dernière intervention
3 novembre 2020
Modifié le 3 nov. 2020 à 10:48
Modifié le 3 nov. 2020 à 10:48
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()
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 3 nov. 2020 à 11:12
Modifié le 3 nov. 2020 à 11:12
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')
Mattgamer2
Messages postés
4
Date d'inscription
lundi 2 novembre 2020
Statut
Membre
Dernière intervention
3 novembre 2020
3 nov. 2020 à 12:38
3 nov. 2020 à 12:38
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
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
3 nov. 2020 à 12:46
3 nov. 2020 à 12:46
ok,
"j'ai modifié la nature de lblfirstperson"
tu as fait quoi ?
Fait voir le code ...
"j'ai modifié la nature de lblfirstperson"
tu as fait quoi ?
Fait voir le code ...
Mattgamer2
Messages postés
4
Date d'inscription
lundi 2 novembre 2020
Statut
Membre
Dernière intervention
3 novembre 2020
Modifié le 3 nov. 2020 à 12:52
Modifié le 3 nov. 2020 à 12:52
J'ai l'ai mit en Button :
lblfirstperson = Button(frame, image=firstpersonimg, bg='white')
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 3 nov. 2020 à 13:01
Modifié le 3 nov. 2020 à 13:01
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()
Mattgamer2
Messages postés
4
Date d'inscription
lundi 2 novembre 2020
Statut
Membre
Dernière intervention
3 novembre 2020
3 nov. 2020 à 13:46
3 nov. 2020 à 13:46
Merci beaucoup Phil. J'ai fait un copier coller de ton code qui fonctionne. Je l'ai étudier et j'ai rajouter la ligne
Maintenant, ça fonctionne. Merci beaucoup Bro.
e2.focus()
Maintenant, ça fonctionne. Merci beaucoup Bro.