2015-05-14 55 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秒)后销毁,延迟后会调用回调函数。