我正在使用 Tkinter 在 Python 2.7 中创建 GUI 应用程序。 我有这段代码:
vis=Label(pur,text='Purchase Added successfully',font=(8))
vis.place(x=150,y=460)
我想知道是否有办法在有限的时间(约3秒)内显示“购买添加成功”标签,然后它就会消失。这是因为我有兴趣在当前“购买”之后添加新的“购买”,并且不希望成功消息重叠。
最佳答案
根据项目模式,有很多方法,所有方法都基于语法:
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() )
但是您需要为每次购买创建一个全新的标签
。
捉迷藏
以下方法允许禁用标签的显示而不破坏它。
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')
)
关于python - 在 Tkinter 上显示标签一段固定的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46745484/