pythonloopstkinterpausing-execution

How to pause Python while Tkinter window is open?


I'm writing a program that sometimes encounters an error. When it does, it pops up a Tkinter dialog asking the user whether to continue. It's a more complicated version of this:

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

The prompt sets keep_going to True or leaves it False. Problem is, the code seems to continue while KeepGoingPrompt is open. I tried storing a reference to the prompt and adding a loop like

while prompt:
    time.sleep(1)

but python gets stuck in the loop and freezes. Is there a better way to do it?

Thanks


Solution

  • You can use the tkMessageBox class to pop up a question dialog that is modal and won't return until the user clicks a button. See the Tkinter book for details.