On Fri, Nov 25, 2005 at 03:39:55AM -0300, João Paulo Silva wrote:
> I've seen the PyGTK FAQ 22.7 [1] about Custom widgets in Glade files
> and I found an error at the lines:
> 
>  class MyGladeApp:
> 
>      def __init__ (self):
>          self.glade = gtk.glade.XML('/path/to/gladefile.glade')
>          self.glade.set_custom_handler(self.get_custom_handler)
> 
> When I made some tests, I received:
> 
>  libglade-WARNING **: could not find widget creation function
> 
> This doesn't worked for me. It just worked when I made something like:
> 
>  class MyGladeApp:
> 
>      def __init__ (self):
>          gtk.glade.set_custom_handler(self.get_custom_handler)
>          self.glade = gtk.glade.XML('/path/to/gladefile.glade')
> 
> First, it's not a self.glade method, but gtk.glade function.
> Second: It just worked when "set_custom_handler" comes before the XML
> loading (why this?).

Because you need to set up custom handlers before processing the glade
XML (they are used to construct widgets, which happens at
construction-time). Please update the FAQ -- and good catch.

This made me think that we might want to separate the parsing of the
tree into a separate method; something like:

    self.tree = gtk.glade.XML("foo.glade")
    self.tree.set_custom_handler(self.custom_widget_handler)
    self.tree.parse()

Of course, this doesn't really follow GTK+.
--
Christian Robottom Reis | http://async.com.br/~kiko/ | [+55 16] 3376 0125
_______________________________________________
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