我是tkinter的新手,我想知道是否有办法清除整个根(窗口)。我尝试使用root.destroy()
,但我希望有机会撤消(回调一些小部件)。我还尝试了.pack_forget()
和.grid_forget()
,但这需要花费很多时间,之后可能会在程序中造成很多错误。
感谢您的帮助。
答案 0 :(得分:1)
如果您打算逐字销毁根窗口中的所有内容,我的建议是将单个框架设置为根窗口的子框架,然后将所有内容放在该框架内。然后,当您需要清除根窗口时,您只需要删除这个窗口小部件,它将负责删除所有其他窗口小部件。
如果不是要销毁您只想隐藏它们的小部件,最好的解决方案是使用grid
,以便您可以使用grid_forget
将其从视图中删除,grid
让它们再次可见您可以使用pack
和pack_forget
,但pack
并不记得小部件的位置,这使得在没有大量工作的情况下恢复它们变得更加困难。
如果您的程序由小组的逻辑组构成,请使用框架来创建组,然后您可以一次destroy
或在整个框架上调用grid_forget
,而不是必须这样做对于每个小部件。
答案 1 :(得分:1)
for ele in root.winfo_children():
ele.destroy()