在Python中,允许在显示Tkinter对话框后执行后续代码

时间:2012-03-20 10:21:32

标签: python tkinter

我在Python中使用Tkinter来显示一个对话框。显示对话框后,无论用户是否关闭了对话框,都应执行后续代码。

我尝试使用线程在新线程中创建对话框,但它似乎不起作用。我想我需要将后续代码封装在一个我不希望的单独线程中。

def alert(title, message):
    box = Tk()
    box.title(title)
    Message(box, text=message, bg='red',
      fg='ivory').pack(padx=1, pady=1) #, relief=GROOVE
    Button(box, text="Close", command=box.destroy).pack(side=BOTTOM)
    box.geometry('300x150')
    thread.start_new_thread(box.mainloop())
    hello()

def hello():
    print 'hello!'

上面代码的问题是'你好!'只有在用户解除警告框后才会打印。如何修改我的代码,无论对话框的状态如何,都要执行hello()(或任何后续代码)?

1 个答案:

答案 0 :(得分:0)

试试这个:

def alert(title, message):
    box = Tk()
    box.title(title)
    Message(box, text=message, bg='red',
      fg='ivory').pack(padx=1, pady=1) #, relief=GROOVE
    Button(box, text="Close", command=box.destroy).pack(side=BOTTOM)
    box.geometry('300x150')
    box.after(10, hello)
    box.mainloop()