Python tkinter unbind函数不能按我所希望的那样工作
我这里有一些代码:Python tkinter unbind函数不能按我所希望的那样工作,python,events,tkinter,Python,Events,Tkinter,我这里有一些代码: def __GameOver__(self): self.canvas.unbind('<Up>'); #other function --- time.sleep(2) self.canvas.bind('<Up>', func); self.root.after(40,self.GameMainLoop) pass def\uuuu GameOver\uuuuu(自我): 自我。画布。解除
def __GameOver__(self):
self.canvas.unbind('<Up>');
#other function ---
time.sleep(2)
self.canvas.bind('<Up>', func);
self.root.after(40,self.GameMainLoop)
pass
def\uuuu GameOver\uuuuu(自我):
自我。画布。解除绑定(“”);
#其他功能---
时间。睡眠(2)
self.canvas.bind(“”,func);
self.root.after(40,self.GameMainLoop)
通过
我想要的是,当游戏结束时,玩家不能做任何事情,直到“其他功能”和时间结束。然而,当我在测试时,我发现如果我在画布后继续按下按钮,取消绑定(“
按钮再次绑定时,事件的处理将完成。考虑解开绑定,然后使用<>代码> 方法进行休眠,然后调用一个绑定密钥的函数。< /P>
这是一个例子。当你按向上键时,标签会改变,当你按按钮时,标签会休眠。在此睡眠期间,up键不起任何作用
import Tkinter as tk
import random
class App():
def __init__(self):
self.root = tk.Tk()
self.label = tk.Label(self.root, text='Bla')
self.label.pack()
self.button = tk.Button(self.root, text='Button', command=self.sleep)
self.button.pack()
self.root.bind('<Up>', self.func)
self.root.mainloop()
def func(self, event):
self.label.config(text='Up '+str(random.random()))
def sleep(self):
self.root.unbind('<Up>')
self.label.config(text='sleeping')
self.root.after(2000, self.done_sleeping)
def done_sleeping(self):
self.label.config(text='done sleeping')
self.root.bind('<Up>', self.func)
App()
将Tkinter作为tk导入
随机输入
类App():
定义初始化(自):
self.root=tk.tk()
self.label=tk.label(self.root,text='Bla')
self.label.pack()
self.button=tk.button(self.root,text='button',command=self.sleep)
self.button.pack()
self.root.bind(“”,self.func)
self.root.mainloop()
def func(自身、事件):
self.label.config(text='Up'+str(random.random()))
def睡眠(自我):
self.root.unbind(“”)
self.label.config(text='sleeping')
self.root.after(2000年,self.done\u睡眠)
def done_睡眠(自我):
self.label.config(text='done sleeping')
self.root.bind(“”,self.func)
App()