我正在使用Tkinter在Python 2.7中创建一个GUI应用程序。 我有这段代码:
vis=Label(pur,text='Purchase Added successfully',font=(8))
vis.place(x=150,y=460)
我想知道是否有办法在有限的时间内(约3秒)显示标签'购买成功添加'然后它会消失。这是因为我有兴趣在当前版本之后添加新的“购买”,并且不希望成功消息重叠。
答案 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')
以供下次购买)