【发布时间】:2020-05-16 09:25:09
【问题描述】:
感谢您对另一个新手问题的耐心等待。我正在学习 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()
如果这个程序正在循环通过类 Test(或任何一个函数),我的控制台应该继续打印增加的 x 和 y 值。当然,事实并非如此。它只打印一次 x 和 y。
感谢您的帮助!
【问题讨论】:
-
这是一个循环。当你有一个 GUI 时,运行它的程序需要不断地检查事件(点击、鼠标移动、调整大小等)。调用
mainloop会启动GUI 以开始侦听和处理这些事件。它在后台执行此操作,因此您不必自己处理。 -
这能回答你的问题吗? Tkinter understanding mainloop -- 阅读 BryanOakley 的回答,我认为它很好地描述了
mainloop。 -
我确实读过 BryanOakley 的回答,这很有帮助,但我仍然感到困惑。是否只有在循环执行期间调用创建该 GUI 的方法?为什么我的 x 值没有增加?
标签: python python-3.x tkinter mainloop