清除整根
Clear whole root
我是 tkinter 的新手,我想知道是否有清除整个根的方法 (window)。我试过 root.destroy()
,但我想有机会撤消(回调一些小部件)。我也试过 .pack_forget()
和 .grid_forget()
,但是需要很多时间,以后可能会导致程序出现很多错误。
感谢您的帮助。
如果您打算从字面上销毁根 window 中的所有内容,我的建议是使单个框架成为根 window 的子框架,然后将所有内容放入该框架中。然后,当您需要清除根 window 时,您只需删除这个小部件,它会负责删除所有其他小部件。
如果您只想隐藏小部件而不是销毁它们,最好的解决方案是使用 grid
,这样您就可以使用 grid_forget
将它们从视图中删除,并且 grid
使它们再次可见。您可以使用 pack
和 pack_forget
,但 pack
不记得小部件的位置,这使得在不进行大量工作的情况下恢复它们变得更加困难。
如果您的程序由小部件的逻辑组组成,请使用框架来创建组,然后您可以 destroy
或立即在整个框架上调用 grid_forget
,而不必为每个单独的小部件执行此操作。
for ele in root.winfo_children():
ele.destroy()
我是 tkinter 的新手,我想知道是否有清除整个根的方法 (window)。我试过 root.destroy()
,但我想有机会撤消(回调一些小部件)。我也试过 .pack_forget()
和 .grid_forget()
,但是需要很多时间,以后可能会导致程序出现很多错误。
感谢您的帮助。
如果您打算从字面上销毁根 window 中的所有内容,我的建议是使单个框架成为根 window 的子框架,然后将所有内容放入该框架中。然后,当您需要清除根 window 时,您只需删除这个小部件,它会负责删除所有其他小部件。
如果您只想隐藏小部件而不是销毁它们,最好的解决方案是使用 grid
,这样您就可以使用 grid_forget
将它们从视图中删除,并且 grid
使它们再次可见。您可以使用 pack
和 pack_forget
,但 pack
不记得小部件的位置,这使得在不进行大量工作的情况下恢复它们变得更加困难。
如果您的程序由小部件的逻辑组组成,请使用框架来创建组,然后您可以 destroy
或立即在整个框架上调用 grid_forget
,而不必为每个单独的小部件执行此操作。
for ele in root.winfo_children():
ele.destroy()