天天看點

python tkmessagebox_在python中關閉tkmessagebox一段時間後

我正在開發一個自動考勤系統,當學生掃描他的RFID标簽時,他的出勤記錄,同時使用tkmessagebox彈出視窗顯示歡迎資訊.使用者将無法控制滑鼠或鍵盤,我希望将消息顯示2秒鐘并删除消息框.有沒有辦法可以關閉提議的tkmessagebox彈出視窗?

我不認為可以使用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秒)之後銷毀頂級視窗小部件,其注冊了在延遲之後調用的回調函數.