This is probably really simple but I haven't yet figured it out. It happens in the context of a much larger program but stripped to it's essence is per the little program below.
The general idea is that the user clicks on a button, that initiates an operation which is going to take some time, so I would like to allow the user to press ESCAPE to cancel the operation. In the code below the "on_button" function is the one that takes some time, but if the user presses ESCAPE while it is running, the escape isn't processed until *after* the "on_button" function returns which sort of defeats the purpose. I've tried inserting update_idletasks() into the function and various other things without success. Any suggestions? I'm running Python 2.4.2 under Linux. Thanks Cam Farnell - - - - - from Tkinter import * import time def on_button(): for J in range(10): print J if CancelNow: break time.sleep(1) def Cancel(Event): print 'Cancelling now' CancelNow = True Root.quit() Root = Tk() Root.bind_all('<Key-Escape>',Cancel) B = Button(Root,command=on_button,text='Go') B.pack() CancelNow = False Root.mainloop() _______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org http://mail.python.org/mailman/listinfo/tkinter-discuss