为什么我的按钮在没有分配任何 parent window 的情况下仍然有效?

Why is my button working even though I haven't assigned any parent window to it?

为什么我的按钮在没有分配任何 parent window 的情况下仍能正常工作?

from tkinter import *

root = Tk()

Button(text='MyButton').pack()

root.mainloop()

小部件存在于 tree-like 层次结构中,单个小部件充当树的根。根小部件是 Tk 的一个实例,应在任何其他小部件之前由应用程序显式创建。

除根 window 之外的所有小部件都需要主控。如果您没有明确定义小部件的主控,它将默认使用根 window.

您可以通过从 tkinter 模块调用函数 NoDefaultRoot 来关闭此行为。例如,以下代码将因 AttributeError: 'NoneType' object has no attribute 'tk':

而失败
from tkinter import *

NoDefaultRoot()

root = Tk()
Button(text='MyButton').pack() 
root.mainloop()