|
Packit |
1e8aac |
<refentry id="pythonsupport" revision="26 Feb 2011">
|
|
Packit |
1e8aac |
<refmeta>
|
|
Packit |
1e8aac |
<refentrytitle>Python Gtk widgets support</refentrytitle>
|
|
Packit |
1e8aac |
<refmiscinfo>Glade UI</refmiscinfo>
|
|
Packit |
1e8aac |
</refmeta>
|
|
Packit |
1e8aac |
<refnamediv>
|
|
Packit |
1e8aac |
<refname>Add python support to your catalog</refname>
|
|
Packit |
1e8aac |
<refpurpose>
|
|
Packit |
1e8aac |
How to write and install a catalog for a python widget library
|
|
Packit |
1e8aac |
</refpurpose>
|
|
Packit |
1e8aac |
</refnamediv>
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
<refsect1>
|
|
Packit |
1e8aac |
<title>Introduction</title>
|
|
Packit |
1e8aac |
<para>
|
|
Packit |
1e8aac |
Glade supports loading widgets coded in python by linking and running the python
|
|
Packit |
1e8aac |
interpreter from the gladepython catalog plugin.
|
|
Packit |
1e8aac |
</para>
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
<para>
|
|
Packit |
1e8aac |
So in order for glade to include your python gtk widgets you will have to:
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
<varlistentry><listitem>
|
|
Packit |
1e8aac |
a) specify gladepython support code as your plugin library.
|
|
Packit |
1e8aac |
</listitem></varlistentry>
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
<varlistentry><listitem>
|
|
Packit |
1e8aac |
b) set glade_python_init as you init function.
|
|
Packit |
1e8aac |
</listitem></varlistentry>
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
<varlistentry><listitem>
|
|
Packit |
1e8aac |
c) make sure your catalog name is the same as your python import library since
|
|
Packit |
1e8aac |
glade_python_init() will use this name to import your widgets into the
|
|
Packit |
1e8aac |
interpreter.
|
|
Packit |
1e8aac |
</listitem></varlistentry>
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
<programlisting>
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
domain="glade-3" depends="gtk+">
|
|
Packit |
1e8aac |
<init-function>glade_python_init</init-function>
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
<glade-widget-classes>
|
|
Packit |
1e8aac |
<glade-widget-class title="MyBox" name="MyBox" generic-name="mybox"/>
|
|
Packit |
1e8aac |
</glade-widget-classes>
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
<glade-widget-group name="python" title="Python">
|
|
Packit |
1e8aac |
<glade-widget-class-ref name="MyBox"/>
|
|
Packit |
1e8aac |
</glade-widget-group>
|
|
Packit |
1e8aac |
</glade-catalog>]]>
|
|
Packit |
1e8aac |
</programlisting>
|
|
Packit |
1e8aac |
</para>
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
<para>
|
|
Packit |
1e8aac |
Glade's python interpreter will look up for your widgets in the same
|
|
Packit |
1e8aac |
places it looks
|
|
Packit |
1e8aac |
for regular catalogs plugins, that is $GLADE_ENV_MODULE_PATH
|
|
Packit |
1e8aac |
enviroment variable
|
|
Packit |
1e8aac |
and `pkg-config --variable=moduledir gladeui-2.0`
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
So the easiest thing would be to make a symlink in one of those directory, just
|
|
Packit |
1e8aac |
do not forget that the name should be the one specified in your catalog name.
|
|
Packit |
1e8aac |
</para>
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
<para>
|
|
Packit |
1e8aac |
pythonplugin.py
|
|
Packit |
1e8aac |
<programlisting>
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
from gi.repository import Gtk
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
class MyBox(Gtk.HBox):
|
|
Packit |
1e8aac |
__gtype_name__ = 'MyBox'
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
def __init__(self):
|
|
Packit |
1e8aac |
Gtk.HBox.__init__(self)
|
|
Packit |
1e8aac |
]]>
|
|
Packit |
1e8aac |
</programlisting>
|
|
Packit |
1e8aac |
</para>
|
|
Packit |
1e8aac |
</refsect1>
|
|
Packit |
1e8aac |
</refentry>
|