Question

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

Was it helpful?

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.

OTHER TIPS

1) Are you running your code inside IDLE? It might be responsible for making the dialogue non-blocking while it really should be blocking.

2) If running outside IDLE does not help, look for tkinter/dialogue options which specify whether behavior is blocking or non-blocking

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top