Python 是tkinter';s mainloop()函数实际上是一个循环?
谢谢你耐心地回答另一个新手问题。我正在学习tkinter,对mainloop()感到困惑。什么是循环?例如:Python 是tkinter';s mainloop()函数实际上是一个循环?,python,python-3.x,tkinter,mainloop,Python,Python 3.x,Tkinter,Mainloop,谢谢你耐心地回答另一个新手问题。我正在学习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()
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()
如果这个程序循环通过类测试(或任何一个函数),我的控制台应该继续打印递增的x和y值。当然不是。它只打印x和y一次
谢谢你的帮助
我对mainloop()感到困惑。什么是循环
Tkinter维护一个事件队列mainloop
在该队列上循环,从中提取项目并执行绑定到事件的函数
如果这个程序在类测试中循环
它不会在代码中循环。有一个不断更新的内部事件列表<代码>主循环在该列表上循环。它不会在代码上循环 这是一个循环。当您拥有GUI时,运行GUI的程序需要不断检查事件(单击、鼠标移动、调整大小等)。调用
mainloop
启动GUI开始侦听和处理这些事件。它在后台执行此操作,因此您不必亲自处理。这是否回答了您的问题?--阅读BryanOakley的答案,我认为它很好地描述了mainloop
。我确实阅读了BryanOakley的答案,这很有帮助,但我仍然感到困惑。是否只有创建GUI的方法在循环执行期间被调用?为什么我的x值没有增加?