Christian Becke wrote: > Jeffrey Finkelstein schrieb: >> I'm new to Gtk. I tried to create a subclass of an HBox and add it to a >> window, but I get a GtkWarning telling me that the assertion >> `GTK_IS_WIDGET()' fails on the instance of my subclass. >> >> For example: >> >> ===code=== >> >> from gtk import Window, HBox, WINDOW_TOPLEVEL, main >> >> class FooBox(HBox): >> def __init__(self): pass > > I think you have to call the constructor of the parent object here: > def __init__(self): > HBox.__init__(self)
wouldn't it be better to use super(FooBox,self).__init__() > and you have to make your new widget known: > import gobject > gobject.type_register (FooBox) > >> window = Window(WINDOW_TOPLEVEL) >> window.add(FooBox()) >> window.show_all() >> main() >> >> ===/code=== >> >> yields a warning at "window.add()", namely "GtkWarning: >> gtk_container_add: assertion `GTK_IS_WIDGET (widget)' failed". This >> causes the widget to not be displayed in the window. >> >> I don't really understand why this is; am I missing a method call? > > Have a look at the gobject tutorial [1]. > > HTH, > > Chris > > [1] > http://www.sicem.biz/personal/lgs/docs/gobject-python/gobject-tutorial.html > _______________________________________________ > pygtk mailing list pygtk@daa.com.au > http://www.daa.com.au/mailman/listinfo/pygtk > Read the PyGTK FAQ: http://faq.pygtk.org/ > _______________________________________________ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/