[pygtk] Overriding default handlers in PyGTK

Kani jkani4 at gmail.com
Wed Mar 12 22:37:39 WST 2008


Hi, 
I found good reference page on the web.

http://www.sicem.biz/personal/lgs/docs/docs/gobject-python/gobject-tutorial.html

Have you ever visited that site?
If not, I hope it will be good help for you.

regards.

On Wed, 12 Mar 2008 20:34:15 +0900
"KwangYul Seo" <skyul ¡÷ nomadconnection.com> wrote:

> 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
> 


-- 
----
kani


More information about the pygtk mailing list