我有以下代码(使用Tkinter),每秒将计数器的值增加1:
import tkinter as tk
def count():
global counter
label.config(text=str(counter))
counter += 1
label.after(1000, count)
root = tk.Tk()
label = tk.Label(root)
label.pack()
counter = 0
count()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
如果我改变它的工作原理是一样的:
label.after(1000, count)
Run Code Online (Sandbox Code Playgroud)
至:
root.after(1000, count)
Run Code Online (Sandbox Code Playgroud)
你打电话到底有什么after()
关系吗?如果是这样,在什么情况下会有关系?
不,没关系. after
是一个基本的小部件方法,可在所有小部件上使用.事实上,Label.after
和Tk.after
是完全相同的函数对象:
>>> import tkinter
>>> tkinter.Label.after is tkinter.Tk.after
True
>>>
Run Code Online (Sandbox Code Playgroud)
有关在所有Tkinter小部件之间共享的方法的完整列表,请参阅文档中的" 基本小部件方法 ".