我正在为python2学习Tkinter,在那里我遇到了这个代码。这个在tkinter中创建一个窗口,并在代码运行良好的情况下每1秒增加一次label的值..您能告诉我为什么没有观察到无限循环,因为每过一千秒控件就会返回count()
,而控件不应该到达最后一个代码行?在
import Tkinter as tk
counter = 0
def counter_label(label):
def count():
global counter
counter += 1
label.config(text=str(counter))
label.after(1000, count)
count()
root = tk.Tk()
root.title("Counting Seconds")
label = tk.Label(root, fg="green")
label.pack()
counter_label(label)
button = tk.Button(root, text='Stop', width=25, command=root.destroy)
button.pack()
root.mainloop()
另外,传递给函数def counter_label
的label变量只是原始变量的副本,因此更改它不应影响原始变量变量。怎么发生了吗?在
感谢任何帮助。在
count()
已到达,它是一个无限循环(如果root.mainloop()
正在运行)。在label.after(1000, count)
调度count
函数并立即返回。tkinter事件循环应该正在运行,否则不会再次调用count()
。在相关问题 更多 >
编程相关推荐