我试图找到一些有关使用的问答或文章tk.mainloop()
vs root.mainloop()
没有成功。
我的问题是:这两种用途有什么区别吗?在我看来正确的方法是使用tk_instance_variable_name.mainloop()
与只是做tk.mainloop()
但从我看来,两者似乎都工作得很好。有什么理由需要避免tk.mainloop()
或者这只是一种偏好。
如果之前有人问过这个问题,请提供 Q/A 链接,因为我无法找到它。我觉得它已经被问过,但没有运气搜索它。
有人可以解释一下为什么吗tk.mainloop()
当我觉得它不应该工作时,它将在这里工作,因为它没有在 tk 实例变量名称上使用。
使用示例root
按预期工作:
import tkinter as tk
root = tk.Tk()
tk.Label(root, text="Test").pack()
root.mainloop() # using the variable name root
使用示例tk
据我所知,工作正常:
import tkinter as tk
root = tk.Tk()
tk.Label(root, text="Test").pack()
tk.mainloop() # using tk
我试图找到一些有关使用 tk.mainloop() 与 root.mainloop() 的问答或文章,但没有成功。
我的问题是:这两种用途有什么区别吗?
简短回答:正常用例没有区别。
每个小部件都有一个关联的 tcl 解释器,该解释器是在创建根小部件时创建的,无论是显式还是隐式。你打电话时mainloop
从任何小部件,它将运行mainloop
与该小部件的根窗口关联的解释器中的函数。
如果您致电mainloop
方法是tkinter
模块(例如:tk.mainloop()
在你的例子中),它会调用mainloop
默认解释器的功能。默认解释器是创建的第一个解释器。因此,在正常情况下,单个实例Tk
, tk.mainloop()
and root.mainloop()
调用完全相同的代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)