Python 在Tkinter上显示固定时间的标签

Python 在Tkinter上显示固定时间的标签,python,python-2.7,user-interface,tkinter,label,Python,Python 2.7,User Interface,Tkinter,Label,我正在使用Tkinter在Python2.7中创建一个GUI应用程序。 我有一段代码: vis=Label(pur,text='Purchase Added successfully',font=(8)) vis.place(x=150,y=460) 我想知道是否有任何方法可以在有限的时间(~3秒)内显示“Purchase Added Successfully”标签,然后它就会消失。这是因为我对在当前的“购买”之后添加新的“购买”感兴趣,并且不希望成功消息重叠。根据项目模式,有许多方法,所有方

我正在使用Tkinter在Python2.7中创建一个GUI应用程序。 我有一段代码:

vis=Label(pur,text='Purchase Added successfully',font=(8))
vis.place(x=150,y=460)

我想知道是否有任何方法可以在有限的时间(~3秒)内显示“Purchase Added Successfully”标签,然后它就会消失。这是因为我对在当前的“购买”之后添加新的“购买”感兴趣,并且不希望成功消息重叠。

根据项目模式,有许多方法,所有方法都基于语法:

vis=Label(pur,text='Purchase Added successfully',font=(8))
vis.place(x=150,y=460)
vis.after(3000, function_to_execute)
彻底销毁

如果您不想知道标签是否已创建、隐藏或为空,并且主要是为了避免可能的内存泄漏(感谢Bryan Oakley的评论):

但是,您需要为每次购买创建一个新的
标签


隐藏和搜索

以下方法允许在不破坏标签的情况下禁用标签的显示

vis.after(3000, lambda: vis.place_forget() )
#vis.after(3000, lambda: vis.grid_forget() ) # if grid() was used
#vis.after(3000, lambda: vis.pack_forget() ) # if pack() was used
然后,您可以使用vis.place(x=150,y=460)


文本擦除器

另一种方式可能不那么有趣,除非您更喜欢在容器小部件中保留空标签:

vis.after(3000, lambda: vis.config(text='') )

(请注意,您可以在下次购买时将文本替换为
vis.config(text='blabla')

非常感谢!这有帮助
place\u-forget
仅将其从显示中删除,不会破坏小部件。如果继续创建新标签而不销毁旧标签,则最终会导致内存泄漏。
vis.after(3000, lambda: vis.config(text='') )