从 tkinter 中清除所有标签 window
Clearing all Labels from a tkinter window
所以我是 tkinter 的新手,但我已经得到了我想要工作的东西,直到某个点。
我不确定我是否正确设置了它,但我有一张世界地图,右边有按钮,左边有事件日志,当事情发生时,它会填满标签。
问题是过了一会儿,整个日志都填满了。
删除所有标签或每次删除最旧(顶部)标签的最佳方法是什么?
这就是我的意思:
定义在这里:
root=Tk()
Map=PhotoImage(file="C:/Users/Willam/Desktop/CWProgram/map2.gif")
background=Label(root,image=Map).place(x=100,y=0,relwidth=1,relheight=1)
Title=Label(root,text=' LOG').pack(anchor=NW)
我这样创建标签:
info=Label(root,text='Select a sector to move units from',wraplength=170)
info.pack(anchor=NW)
我尝试了通常的 info.destoy()
和 info.forget()
,但这些仅适用于该函数中使用的最后一个标签。
我应该将所有标签分组还是什么?
正如 PM 2Ring 所建议的那样,将标签附加到列表中以供将来参考通常很有用:
tmp = Label(...)
labels.append(tmp)
然后只是:
foreach label in labels: label.destroy()
如果您不想要列表,并且确定要清除根目录中的所有内容:
foreach label in root.children.values(): label.destroy()
children dict 始终包含其中包含的对象。如果你想保留地图标签,你必须像我展示的那样制作你自己的列表,而不是在其中附加 info
。
我建议使用:
info.pack_forget()
对于您创建的每个包,您必须按照以下格式进行操作:
packname.pack_forget()
如果你有很多包,这是不切实际的,但否则效果很好。
这也使得有选择地移除一些标签并保留其他标签变得非常容易,因为它不会清除您放置的所有包装。
只需使用:
root.children.clear
清屏后再次输入地图和函数...
所以我是 tkinter 的新手,但我已经得到了我想要工作的东西,直到某个点。 我不确定我是否正确设置了它,但我有一张世界地图,右边有按钮,左边有事件日志,当事情发生时,它会填满标签。 问题是过了一会儿,整个日志都填满了。 删除所有标签或每次删除最旧(顶部)标签的最佳方法是什么? 这就是我的意思:
定义在这里:
root=Tk()
Map=PhotoImage(file="C:/Users/Willam/Desktop/CWProgram/map2.gif")
background=Label(root,image=Map).place(x=100,y=0,relwidth=1,relheight=1)
Title=Label(root,text=' LOG').pack(anchor=NW)
我这样创建标签:
info=Label(root,text='Select a sector to move units from',wraplength=170)
info.pack(anchor=NW)
我尝试了通常的 info.destoy()
和 info.forget()
,但这些仅适用于该函数中使用的最后一个标签。
我应该将所有标签分组还是什么?
正如 PM 2Ring 所建议的那样,将标签附加到列表中以供将来参考通常很有用:
tmp = Label(...)
labels.append(tmp)
然后只是:
foreach label in labels: label.destroy()
如果您不想要列表,并且确定要清除根目录中的所有内容:
foreach label in root.children.values(): label.destroy()
children dict 始终包含其中包含的对象。如果你想保留地图标签,你必须像我展示的那样制作你自己的列表,而不是在其中附加 info
。
我建议使用:
info.pack_forget()
对于您创建的每个包,您必须按照以下格式进行操作:
packname.pack_forget()
如果你有很多包,这是不切实际的,但否则效果很好。
这也使得有选择地移除一些标签并保留其他标签变得非常容易,因为它不会清除您放置的所有包装。
只需使用:
root.children.clear
清屏后再次输入地图和函数...