[Tkinter-discuss] Tkinter and signal handling

Michael Lange klappnase at web.de
Sat Jan 15 22:09:23 CET 2011


Thus spoketh Michael Lange <klappnase at web.de> 
unto us on Sat, 15 Jan 2011 21:48:31 +0100:

> Hi,
> 
> I encountered a strange problem with Tkinter and the handling of signals
> (on debian linux, both with Python-2.5 / Tk-8.4 and  Python-2.6 /
> Tk-8.6). The problem resembles much the one described in this old
> message:
> 
> http://web.archiveorange.com/archive/v/5H3d1OLg2fjze5McyfSL
> 

Ok, after reading the answer to this old question for a second time, I
found a ugly but working solution, changing the example into:

####################################
import Tkinter
import signal

root = Tkinter.Tk()

def poll():
    root.after(500, poll)
root.after(500, poll)

def handle_signal(signum, frame):
    print 'Caught signal # %d' % signum
signal.signal(2, handle_signal)

root.mainloop()
###################################

Apparently, as soon as root.after() is called the signal reaches the
window. Probably there is some active polling-loop like this in the other
app I mentioned in the first post. Still it seems like a pain in the neck
if you need the loop just for signal handling :(

Best regards

Michael

.-.. .. ...- .   .-.. --- -. --.   .- -. -..   .--. .-. --- ... .--. . .-.

Death, when unnecessary, is a tragic thing.
		-- Flint, "Requiem for Methuselah", stardate 5843.7


More information about the Tkinter-discuss mailing list