Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是tkinter';s mainloop()函数实际上是一个循环?_Python_Python 3.x_Tkinter_Mainloop - Fatal编程技术网

Python 是tkinter';s 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()

谢谢你耐心地回答另一个新手问题。我正在学习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()

如果这个程序循环通过类测试(或任何一个函数),我的控制台应该继续打印递增的x和y值。当然不是。它只打印x和y一次

谢谢你的帮助

我对mainloop()感到困惑。什么是循环

Tkinter维护一个事件队列
mainloop
在该队列上循环,从中提取项目并执行绑定到事件的函数

如果这个程序在类测试中循环


它不会在代码中循环。有一个不断更新的内部事件列表<代码>主循环在该列表上循环。它不会在代码上循环

这是一个循环。当您拥有GUI时,运行GUI的程序需要不断检查事件(单击、鼠标移动、调整大小等)。调用
mainloop
启动GUI开始侦听和处理这些事件。它在后台执行此操作,因此您不必亲自处理。这是否回答了您的问题?--阅读BryanOakley的答案,我认为它很好地描述了
mainloop
。我确实阅读了BryanOakley的答案,这很有帮助,但我仍然感到困惑。是否只有创建GUI的方法在循环执行期间被调用?为什么我的x值没有增加?