Hello,
Is is possible to override default event handlers in PyGTK? In pygobject,
methods with "do_signal_name" name convention automatically become default
handlers. I tried to override the default "realize" handler in PyGTK.
However, do_realize was never called in this case. Do I have to connect to
window's "realize" signal in this case? How can I override default signal
handlers written in C with Python?
#!/usr/bin/env python
import pygtk
pygtk.require('2.0')
import gtk
class HelloWorld(gtk.Window):
def delete_event(self, widget, event, data=None):
print "delete event occurred"
return False
def destroy(self, widget, data=None):
gtk.main_quit()
def __init__(self):
super(HelloWorld, self).__init__(gtk.WINDOW_TOPLEVEL)
self.connect("delete_event", self.delete_event)
self.connect("destroy", self.destroy)
self.set_border_width(10)
self.button = gtk.Button("Hello World")
self.button.connect_object("clicked", gtk.Widget.destroy, self)
self.add(self.button)
self.button.show()
self.show()
def main(self):
gtk.main()
def do_realize(self):
print "do_realize is overriden"
if __name__ == "__main__":
hello = HelloWorld()
hello.main()
Thanks,
Kwang Yul Seo
_______________________________________________
pygtk mailing list [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/