你调用after()方法后调用的是什么?

Zug*_*bop 3 python tkinter

我有以下代码(使用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()关系吗?如果是这样,在什么情况下会有关系?

iCo*_*dez 5

不,没关系. after是一个基本的小部件方法,可在所有小部件上使用.事实上,Label.afterTk.after是完全相同的函数对象:

>>> import tkinter
>>> tkinter.Label.after is tkinter.Tk.after
True
>>>
Run Code Online (Sandbox Code Playgroud)

有关在所有Tkinter小部件之间共享的方法的完整列表,请参阅文档中的" 基本小部件方法 ".