В Python разрешено выполнение последующего кода после отображения диалога Tkinter - PullRequest
2 голосов
/ 20 марта 2012

Я использую Tkinter в Python для отображения диалогового окна.После отображения диалогового окна последующий код должен выполняться независимо от того, закрыл ли пользователь диалоговое окно или нет.

Я пытался использовать поток для создания диалогового окна в новом потоке, но, похоже, это не работает.Я полагаю, мне нужно будет инкапсулировать последующий код в отдельный поток, который я не хочу.

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 голосов
/ 20 марта 2012

попробуйте это:

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...