[pygtk] Re: Re: Cannot subclass gtk.Widget
John Dennis
jdennis at redhat.com
Sat Mar 10 00:38:59 WST 2007
On Fri, 2007-03-09 at 08:10 -0700, Jeffrey Barish wrote:
> Gustavo J. A. M. Carneiro wrote:
>
> > Another, more complex, example can be found here:
> > http://telecom.inescporto.pt/~gjc/higcontainer/higcontainer.py
>
> Thanks to everyone for the examples. Is there documentation anywhere on the
> do_ methods that they all contain? I guess that when a Widget receives a
> size_request call, for example, it calls do_size_request on its children.
My understanding, albeit gleaned only from example code and
experimentation is widget subclassing in pygtk works by the following
method. Instead of overriding a method by creating a new method in the
subclass with the same name as is the normal method of subclass override
in OO languages pygtk appears to operate this way: The name of the
method is prefixed with 'do_' and a method look up is performed on that
name in the subclass, if the do_xxxx method is found it is invoked as
the overridden method. If the override mechanism does not work this way
I'd love to know what actually is going on. I'm also curious as to why
pygtk seems to have this peculiar and undocumented subclassing form.
To the best of my knowledge the 'do_' prefix method of subclassing is
totally undocumented in pygtk other than it appears in the example code.
I searched for hours looking for a clear statement of the subclassing
behavior and I never found it. To my mind this is a serious
documentation omission.
--
John Dennis <jdennis at redhat.com>
More information about the pygtk
mailing list