在Python的Tkinter中结束计时器

时间:2016-01-15 17:59:40

标签: python user-interface datetime timer tkinter

我遇到了问题,即当我想用计时器关闭窗口时出现错误,我不知道该怎么办:

class App():
def __init__(self):
    self.root = Tk()
self.root.geometry("100x50+50+50")
    self.done_time=datetime.datetime.now() + datetime.timedelta(seconds=a) 
    self.label = Label(text="")
    self.label.pack()
    self.update_clock()
    self.root.mainloop()

def update_clock(self):
    elapsed = self.done_time - datetime.datetime.now()
    h,m,s,fs = elapsed.seconds/3600,elapsed.seconds/60,elapsed.seconds%60,(elapsed.microseconds%60)
    #fractional_seconds = math.floor(elapsed.microseconds/1000000.0*100)
    self.label.configure(text="%02d:%02d:%02d:%02d"%(h,m,s,fs))
    self.root.after(100, self.update_clock)
while s == 0:
    self.root.destroy() #====> here is the problem

1 个答案:

答案 0 :(得分:1)

要取消挂起的更新,您需要保存对作业ID的引用。然后你可以打电话给<script> System.config({ packages: { app: { format: 'register', defaultExtension: 'js' } } }); (...) </script> ,如果你的工作是id。

after_cancel