[pygtk] hide on delete_event()

Christian Becke christianbecke at web.de
Sat Dec 6 02:34:35 WST 2008


Peyman schrieb:
> I have tried every variation, but I will try it once again...Nope,  
> still doesn't work. I tried returning: True, False, 0, 1, gtk.TRUE,  
> and gtk.FALSE

This works for me (python 2.5.2, pygtk 2.13.0, gtk 2.14.4):

-------------------------8<-------------------------
import gtk

def on_button_toggled (toggle, window):
	print "button toggled"
	if toggle.get_active ():
		window.show ()
		toggle.set_label ("Hide window")
	else:
		window.hide ()
		toggle.set_label ("Show window")


def on_delete (window, event, toggle):
	print "delete event"
	toggle.set_active (False)
	return True


def sync_toggle_state (toggle, window):
	toggle.set_active (window.get_property ('visible'))
	on_button_toggled (toggle, window)


w1 = gtk.Window ()
w1.set_title ("Main Window")
w1.set_default_size (200, -1)
w1.set_position (gtk.WIN_POS_CENTER)
w1.connect ('delete-event', gtk.main_quit)

vb = gtk.VButtonBox ()
w1.add (vb)

w2 = gtk.Window ()

tb = gtk.ToggleButton ()
tb.connect ('toggled', on_button_toggled, w2)
vb.pack_start (tb, False)

w2.set_title ("Secondary Window")
w2.connect ('delete-event', on_delete, tb)
#w2.show ()


w1.show_all ()
sync_toggle_state (tb, w2)
gtk.main ()

------------------------->8-------------------------

HTH,

Chris


More information about the pygtk mailing list