2013-06-27





Esta especie de tutorial de PyGObject (Python y GTK+ 3) es casi una traducción literal de su documentación. Más que un tutorial, es el ejemplo más simple de como crear una ventana vacía. Seguidamente, extenderemos el script para agregarle un botón que realiza una determinada acción. Se necesita un conocimiento razonable del lenguaje Python, el cual dudo en tener :-)

Antes de comenzar, recomiendo los siguientes documentos para que podamos aprender un poco más sobre PyGObject:

http://python-gtk-3-tutorial.readthedocs.org

https://developer.gnome.org/gnome-devel-demos/stable/tutorial.py.html.en

http://pfrields.fedorapeople.org/presentations/OhioLF2011/PyGObject.pdf

https://developer.gnome.org/gtk3/

Ejemplo Simple

Para comenzar, crearemos el ejemplo más simple posible, el cual consiste de una ventana vacía.



<notextile><figure class="code"><figcaption>ejemplo_simple.py </figcaption>

</figure></notextile>

Explicaremos ahora cada línea del ejemplo.

La primera línea de todos los programas en Python debe empezar con #! seguido del camino al intérprete Python que queremos invocar.

Para poder acceder a las clases y funciones de GTK+, primero debemos importar el módulo Gtk. La próxima línea crea una ventana vacía.

Seguidamente, conectamos la ventana a su evento delete para asegurarnos de que la aplicación termine al cliquear en la x de la ventana.

En el próximo paso mostramos la ventana.

Finalmente, iniciamos el loop de procesamiento de GTK+, del cual saldremos cuando la ventana sea cerrada (ver línea 5).

Para ejecutar el programa, abrimos una terminal, cambiamos el directorio hasta donde está el archivo (al cual le llamé ejemplo_simple.py), y ponemos:

Alternativamente, podemos darle permisos de ejecución y luego ejecutarlo:

Ejemplo Extendido

Para algo un poco más útil, aquí está la vesión en PyGObject del clásico programa Hello World.

<notextile><figure class="code"><figcaption>ejemplo_extendido.py </figcaption>

</figure></notextile>

A diferencia del ejemplo simple, aquí creamos una sub-clase de Gtk.Window para definir nuestra propia clase MyWindow.

En el constructor de la clase, tenemos que llamar al constructor de la super-clase. Además, le diremos que dé el valor de Hello World a la propiedad title.

Las próximas tres líneas son usadas para crear un botón (widget), conectarlo a su señal clicked, y adicionarlo como hijo a la ventana.

En consecuencia, el método on_button_clicked() será llamado si cliqueamos en el botón.

El último bloque, fuera de la clase, es muy similar al del ejemplo simple de más arriba, pero en lugar de crear una instancia de la cláse genérica Gtk.Window, creamos una instancia de MyWindow.

Show more