2015-05-14 58 views
3

我正在開發一個自動考勤系統,當學生掃描他的RFID標籤,他的出席記錄,同時顯示歡迎消息,使用tkmessagebox彈出窗口。用戶將無法控制鼠標或鍵盤,我想保持消息顯示2秒鐘並刪除消息框。有沒有辦法可以像建議的那樣關閉tkmessagebox彈出窗口?關閉tkmessagebox一段時間後python

回答

1

我不認爲它可以用tkMessageBox完成,因爲這會創建一個模式對話框,並且您無權訪問小部件ID(因此它可以通過編程方式銷燬)。

但是,創建自己的頂級窗口並添加一些歡迎消息並在一段時間後關閉它並不難。例如:

from Tkinter import * 

WELCOME_MSG = '''Welcome to this event. 

Your attendance has been registered. 

Don't forget your free lunch.''' 
WELCOME_DURATION = 2000 

def welcome(): 
    top = Toplevel() 
    top.title('Welcome') 
    Message(top, text=WELCOME_MSG, padx=20, pady=20).pack() 
    top.after(WELCOME_DURATION, top.destroy) 

root = Tk() 
Button(root, text="Click to register", command=welcome).pack() 

root.mainloop() 

您需要將事件處理程序掛接到RFID檢測。這是通過上面代碼中的一個按鈕來模擬的,事件處理函數是welcome()函數。在welcome()中創建了一個包含消息的頂級窗口小部件。頂級小部件在使用.after()的2000毫秒(2秒)後銷燬,延遲後會調用回調函數。