OVH Cloud OVH Cloud

désactiver un bind dans Tkinter

2 réponses
Avatar
Jonathan Barnoud
Bonjour,

Je travail à un petit jeu avec une interface en Tkinter. Pour déplacer
le personnage j'ai binder les touches directionnelles. Lorsque le
personnage mœur (ou dans d'autres circonstances éventuellement)
j'aimerais désactiver les bind mais je n'ais pas trouver comment faire.

J'ai essayer d'atacher les bind à une variable comme ceci :

toto = main.bin("<Key-Up>", fonction)

Puis de suprimer la variable avec del mais le bind est toujours actif.

Si quelqu'un avait une idée ça m'arrangerais pas mal.

Merci,
Jonathan Barnoud

2 réponses

Avatar
Pierre Quentel

j'aimerais désactiver les bind mais je n'ais pas trouver comment faire.



Il y a une commande "unbind" qui désactive le "bind"
Par exemple :

from Tkinter import *

def fonction(event):
global t
t.insert(END,'ok ')

def bind():
global t
t.bind('<Key-Up>',fonction)

def unbind():
global t
t.unbind('<Key-Up>')

root = Tk()
t = Text(root)
t.pack()
t.bind('<Key-Up>',fonction)
b1 = Button(root,text="Bind",command=bind)
b2 = Button(root,text="Unbind",command=unbind)
b1.pack()
b2.pack()
root.mainloop()

A+
Pierre

Avatar
Jonathan Barnoud


j'aimerais désactiver les bind mais je n'ais pas trouver comment faire.



Il y a une commande "unbind" qui désactive le "bind"
Par exemple :

from Tkinter import *

def fonction(event):
global t
t.insert(END,'ok ')

def bind():
global t
t.bind('<Key-Up>',fonction)

def unbind():
global t
t.unbind('<Key-Up>')

root = Tk()
t = Text(root)
t.pack()
t.bind('<Key-Up>',fonction)
b1 = Button(root,text="Bind",command=bind)
b2 = Button(root,text="Unbind",command=unbind)
b1.pack()
b2.pack()
root.mainloop()

A+
Pierre
Merci, c'est exactement ce que je cherchais. Je me demande bien pourquoi

je n'ais pas penser à chercher directement à unbind (d'autant plus que
ma fonction s'appellait comme ça...).

En tout cas me voila avancé :o)

Jonathan Barnoud