2017-10-14 44 views
1

我在使用Tkinter的Python 2.7中创建GUI应用程序。 我有这样一段代码:在Tkinter上显示固定时间的标签

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

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

回答

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


捉迷藏

以下方法允许停用的标签的显示,而不破坏它。

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')代替下次购买的文字)

+0

非常感谢!这有帮助! –

+1

'place_forget'只是将它从显示中删除,它不会销毁小部件。如果你继续创造新的标签而不破坏旧的标签,你最终会泄漏内存。 –