[pygtk] GTK_IS_WIDGET on subclass of a widget fails
Christian Becke
christianbecke at web.de
Thu May 21 21:44:47 WST 2009
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)
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
More information about the pygtk
mailing list