2014-01-28 168 views
1

我是一個初學Python程序員,最近開始使用tkinter,雖然我遇到了一個我無法解決的問題。閃爍Tkinter標籤

基本上我有兩個輸入框。

  • 條目1 =消息
  • ENTRY2 =無。閃爍

(這只是我所需要的例子。)

所有我需要的是一個for循環標籤彈出和閃光燈entry1多次entry2,是的,我知道如何爲了獲得輸入輸入,但我不知道如何讓標籤持續閃爍,我試圖在循環中標記pack_forget.destroy方法,但不幸的是它不會顯示,因爲它幾乎立即從屏幕上立即清除它。

+1

你對「flash」的實施意味着什麼?背景顏色?快速增長和縮小的對象?該對象消失? –

回答

4

其基本思想是創建一個閃光燈(或閃光燈的一半)的功能,然後使用after重複調用該功能,只要您想要閃光燈發生。

下面是切換背景和前景色的示例。它永遠運行,只是因爲我想保持這個例子的簡短。您可以輕鬆添加計數器,停止按鈕或其他任何您想要的內容。需要從中獲得的東西是具有一個動畫(在這種情況下,切換顏色)的功能的概念,然後調度自己在一段時間後再次運行。

import Tkinter as tk 

class Example(tk.Frame): 
    def __init__(self, parent): 
     tk.Frame.__init__(self, parent) 
     self.label = tk.Label(self, text="Hello, world", 
           background="black", foreground="white") 
     self.label.pack(side="top", fill="both", expand=True) 
     self.flash() 

    def flash(self): 
     bg = self.label.cget("background") 
     fg = self.label.cget("foreground") 
     self.label.configure(background=fg, foreground=bg) 
     self.after(250, self.flash) 

if __name__ == "__main__": 
    root = tk.Tk() 
    Example(root).pack(fill="both", expand=True) 
    root.mainloop() 
+0

使用樣式怎麼樣?你每半秒換一次標籤的風格還是有更好的方法? – gnr