2017-10-14 45 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'只是將它從顯示中刪除,它不會銷燬小部件。如果你繼續創造新的標籤而不破壞舊的標籤,你最終會泄漏內存。 –