0
在我的代码中,主窗口正在发出事件信号,这些信号将被子窗口捕获,这将显示标签中的更改。但只有最后一个子窗口捕获事件信号,并更改它的标签。怎么了?Tkinter事件在所有子窗口中都未被触发。
from Tkinter import *
from threading import Timer as tt
class main(Tk):
def __init__(self):
Tk.__init__(self)
tt(.5,self.timedsig).start()
for i in range (5):
child(self,i)
def timedsig(self):
self.event_generate("<<timedsig>>")
tt(.5,self.timedsig).start()
class child(Toplevel):
def __init__(self,master,num):
Toplevel.__init__(self)
self.title(str(num))
self.num=num
self.var=IntVar()
self.var.set(0)
Label(self,textvariable=self.var).pack()
self.master=master
self.master.bind("<<timedsig>>",self.changelabel)
def changelabel(self,e):
print self.num,self.var.get()
self.var.set(self.var.get()+1)
if __name__=="__main__":
main().mainloop()
我认为你只能将一个函数绑定到一个事件,所以只有给定事件的最后一个绑定是适用的。 – FamousJameous