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

时间:2017-10-14 14:09:39

标签: python python-2.7 user-interface tkinter label

我正在使用Tkinter在Python 2.7中创建一个GUI应用程序。 我有这段代码:

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

我想知道是否有办法在有限的时间内(约3秒)显示标签'购买成功添加'然后它会消失。这是因为我有兴趣在当前版本之后添加新的“购买”,并且不希望成功消息重叠。

1 个答案:

答案 0 :(得分:2)

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

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.destroy() )

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

隐藏

以下方法允许禁用Label的显示而不会破坏它。

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')以供下次购买)