LabelFrame f在第一个grid_forget之后更新,但不在第二个之后更新。为什么呢?
import tkinter as tk
root=tk.Tk()
f = tk.LabelFrame(root, text='The frame')
l1 = tk.Label(f, text='Label1')
l1.grid()
l2 = tk.Label(f, text='Label2')
l2.grid()
f.after(3000, l1.grid_forget)
f.after(6000, l2.grid_forget)
f.pack(fill=tk.BOTH, expand=True)
root.mainloop()
答案 0 :(得分:1)
删除帧的最后一个子节点后,grid
不再“拥有”该窗口,因此它不知道它需要调整帧的大小。
最简单的解决方案是在其中放置一个小的1x1像素帧,这将保留grid
作为帧内小部件的管理器。