tkinter 的 mainloop() 函数实际上是一个循环吗?

Is tkinter's mainloop() function actually a loop?

感谢您耐心回答另一个新手问题。我正在学习 tkinter,我对 mainloop() 感到困惑。究竟什么是循环?例如:

import tkinter as tk
class Test(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master)
        self.master = master
        self.pack()
        self.create_widgets()
        x = 2
        x += 1
        print(x)
    def create_widgets(self):
        y = 1
        y += 1
        print(y)


root = tk.Tk()
app = Test(master=root)
app.mainloop()

如果此程序循环通过 class 测试(或任一函数),我的控制台应继续打印增加的 x 和 y 值。当然,事实并非如此。它只打印一次 x 和 y。

感谢您的帮助!

I am confused about the mainloop(). What exactly is looping?

Tkinter 维护一个事件队列。 mainloop 遍历该队列,拉出项目并执行绑定到事件的函数。

If this program was looping through class Test ...

它不会遍历您的代码。有一个内部的、不断更新的事件列表。 mainloop 遍历该列表。它不会遍历您的代码。