我正在计算时间。我定义了一个实现它的功能。但我希望点击按钮时计时机停止。有没有办法做到这一点?
我可以定义另一个函数来停止计时功能或做任何其他事情来实现吗?
我的代码是:
from Tkinter import *
counter=0
def label_counter(label):
def count():
global counter
counter+=1
label.config(text=str(counter))
label.after(1000,count)
count()
root=Tk()
label=Label(root)
label.pack()
label_counter(label)
button=Button(root,text='Stop',command=root.destroy)
button.pack()
mainloop()
答案 0 :(得分:2)
代码中最简单的修复方法是使用另一个全局变量为警报分配一个标识符:
from Tkinter import *
counter=0
alarm_id = None
def label_counter(label):
def count():
global counter
global alarm_id
counter+=1
label.config(text=str(counter))
alarm_id = label.after(1000,count)
count()
然后您可以创建另一个按钮,并使用after_cancel
方法(列出here)取消闹钟:
label.after_cancel(alarm_id)
请注意,您不应该使用全局变量。创建一个类并改为使用它的字段。