python - 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()
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。
感谢您的帮助!
解决方案
我对 mainloop() 感到困惑。究竟什么是循环?
Tkinter 维护一个事件队列。mainloop
循环遍历该队列,拉出项目并执行绑定到事件的函数。
如果这个程序正在循环通过类 Test ...
它不会遍历您的代码。有一个内部的、不断更新的事件列表。mainloop
循环遍历该列表。它不会遍历您的代码。
推荐阅读
- reactjs - React Markdown - 如何将自定义简码呈现到组件中
- filter - OData 扩展字段并按它们过滤
- javascript - React:如何在按钮组中切换活动类?
- angular - Azure 静态网站在更改后不显示更新?
- javascript - ReactJs 中的数据可视化与 ChartJs
- javascript - 这个组合器是什么?
- react-native - 如何在 react-native-charts-kit 中显示点击的值
- javascript - PHP:带有格式字符串的日期()不起作用
- javascript - 抓住获胜的幻灯片内容
- java - 我可以在 Java 的构造函数中添加多个覆盖方法吗?