Как приостановить Python при открытом окне Tkinter? - PullRequest
0 голосов
/ 15 октября 2010

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

keep_going = False
KeepGoingPrompt(keep_going)
if not keep_going:
    return

Приглашение устанавливает keep_going на True или оставляет его False. Проблема в том, что код продолжается, пока KeepGoingPrompt открыт. Я пытался сохранить ссылку на prompt и добавить цикл вроде

while prompt:
    time.sleep(1)

но питон застревает в цикле и зависает. Есть ли лучший способ сделать это?

Спасибо

Ответы [ 2 ]

1 голос
/ 15 октября 2010

Вы можете использовать класс tkMessageBox, чтобы открыть диалоговое окно вопроса, которое является модальным и не вернется, пока пользователь не нажмет кнопку.Подробнее см. книгу Tkinter .

0 голосов
/ 15 октября 2010

1) Вы запускаете свой код внутри IDLE?Он может быть ответственным за то, чтобы сделать диалог неблокирующим, в то время как он действительно должен быть блокирующим.

2) Если запуск вне IDLE не помогает, найдите параметры tkinter / dialog, которые определяют, является ли поведение блокирующим или неблокирующим

...