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/

Reply via email to