[Glade-users] How-to define my own class inheriting from gtk.Window and using glade file

Dominique Beauchamp lgd.beauchamp at gmail.com
Wed Apr 6 21:01:58 EDT 2011


Thanks for the fast answer.

Here is what I did:

1) I copied pythonplugin.py and pythonplugin.xml as shown in the example in
a directory XYZ
2) I defined an environment variable named GLADE_ENV_CATALOG_PATH = XYZ
(where my .py and my .xml are)
3) I started Glade (3.7.3) Where is my widget?

In the xml, I find this:

<glade-widget-group name="python" title="Python">
   <glade-widget-class-ref name="MyBox"/>
 </glade-widget-group>

I guess I should have a group (or a tab) named "Python" with a widget named
"MyBox" but I don't. What did I do incorrectly?

Dominique

2011/4/5 Tristan Van Berkom <tvb at gnome.org>

> On Wed, Apr 6, 2011 at 12:46 PM, Dominique Beauchamp
> <lgd.beauchamp at gmail.com> wrote:
> > Hello all!
> > I'm using Glade with PyGTK (Python 2.6) and I'm quite happy about the
> > results. I succeed to define an application class like this:
> > class MyApp:
> >
> > def __init__( self ):
> >
> > Builder = gtk.Builder()
> > Builder.add_from_file( 'filename' )
> > Builder.connect_signals( self )
> > self.__MainWnd = Builder.get_object( 'MainWnd' )
> >
> > etc...
> >
> > But here is what I want to do: creating a class that derives from
> gtk.window
> > and being the main window defined within Glade.
> > class MyWnd( gtk.Window ):
> >
> > def __init__( self, ??? ):
> >
> > ...
> >
> > Here I want that the object returned by Builder.get_object( 'MainWnd' )
> be
> > the object created by the actual class MyWnd because this class is in
> fact a
> > gtk.Window.
> > Is my explaination clear?
> > Maybe it is not possible this way and I have to create manually my own
> > gtk.Window then grab the VBox/HBox/Table with Builder.get_object() and
> add
> > it to my window. But it is not that cute.
> > Any idea will be welcome and thanks in advance!
>
> Yes, you can define classes in python and use them in Glade and GtkBuilder.
>
> For PyGTK & GTK+2 you must use Glade 3.6 or 3.8, if you migrate to
> PyObject & GTK+3
> then you must use Glade 3.10.
>
> There is an example of how to setup Glade so that your custom python
> widgets
> show up in Glade's palette, in Glade's API reference here:
>    http://library.gnome.org/devel/gladeui/3.6/pythonsupport.html
>
> Basically you just have to define a short xml catalog and have it in
> GLADE_CATALOG_PATH
> when firing up Glade, and have a copy of the python source in the same
> directory.
>
> Enjoy,
>      -Tristan
>



-- 
*Dominique Beauchamp*
lgd.beauchamp at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/glade-users/attachments/20110406/7620a538/attachment-0001.html 


More information about the Glade-users mailing list