ProgramacionGTKenPython/CapituloI

De Wiki GNOME Chile
(Diferencias entre revisiones)
Saltar a: navegación, buscar
(Hola Mundo, version 0.1)
(Hola Mundo, version 0.1)
Línea 86: Línea 86:
 
Y la magia termina cuando se llama al loop principal de GTK+:
 
Y la magia termina cuando se llama al loop principal de GTK+:
 
<pre>gtk.Main()</pre>
 
<pre>gtk.Main()</pre>
 +
 +
Solo grabar esas lineas de texto en un archivo .py y ejecutar:
 +
 +
<pre>usuario@maquina:$ python holamundo.py</pre>
 +
 +
Para ejecutar.
 +
 +
== Controles ==
 +
 +
El primer control que aparecio en el ejemplo anterior fue el control GTK_WINDOW (ventana):
 +
 +
<pre> ventana = gtk.Window(gtk.WINDOW_TOPLEVEL)</pre>
 +
 +
Cada control esta definido para ser llamado como un control del objeto gtk:
 +
 +
<pre>ventana = gtk.Window(gtk.WINDOW_TOPLEVEL)
 +
boton = gtk.Button("Boton")
 +
etiqueta = gtk.Label("Etiqueta")</pre>
 +
 +
Cada variable que tenga un control es llamado de la siguiente forma:
 +
 +
<pre>variable = gtk.Control(argumentos)</pre>
 +
 +
Luego, el control podra llamar a sus metodos :
 +
 +
<pre>variable.metodo(argumento1,argumento2,...)</pre>

Revisión de 05:10 8 nov 2008

Bienvenidos al primer capitulo de Programacion GTK+ en Python.

Contenido

Programando en GTK+

Si alguna vez vieron Programacion GTK en C, Capitulo I, se habran dado cuenta que programar, compilar y ejecutar la aplicacion son tres pasos por separado. A diferencia de lo anterior, programar en Python para GTK+ es mucho mas sencillo en un aspecto fundamental:

  • No es necesario compilar ni enlazar una aplicacion para ejecutarla

Usando C, lo tipico es compilar la aplicacion y enlazarla:

user@maquina:$ gcc -c programa.c `pkg-config --cflags gtk+-2.0 `
user@maquina:$ gcc -o programa programa.o `pkg-config --libs gtk+-2.0 `

Python da la ventaja de que no es necesario enlazar:

user@maquina:$ python aplicacion.py

Y listo.

Dependencias Basicas

La mayoria de las distribuciones que empaquetan GNOME para distribucion lo hacen junto con las dependencias basicas para ejecutar aplicaciones escritas en Python. Pero es mejor cerciorarse de lo anterior.

Es hora de usar la shell de Python:

user@maquina:$ python
Python 2.5.2 (r252:60911, May  7 2008, 15:19:09) 
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

Para comprobar si la extension de GTK para Python esta instalada, solo ejecuten en la shell de Python:

>>> import gtk

No deberia dar error. En caso contrario:

>>> import gtk
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named gtk

Si ocurre eso, echen mano del manejo que tengan de su distribucion. Por lo general, las distribuciones basadas en Debian necesitan el paquete python-gtk2 (y sus dependencias).

Un primer programa en GTK+

Ahora veamos un ejemplo muy simple, un tipico "Hola Mundo".

import gtk
ventana = gtk.Window(gtk.WINDOW_TOPLEVEL)
ventana.set_title("Hola Mundo!")
ventana.show()
gtk.main()

Destripemos este ejemplo linea por linea.

Hola Mundo, version 0.1

import gtk

Permite usar GTK+ desde dentro de Python.

ventana = gtk.Window(gtk.WINDOW_TOPLEVEL)

Quiero detenerme un poco antes de seguir con lo siguiente. Y usar algunos "malos" ejemplos de otros lenguajes de programacion.

En C, lo tipico es definir la variable previamente y asignarle el tipo de dato:

#include <gtk.h>

GtkWidget * control;

control = gtk_window_new(GTK_WINDOW_TOPLEVEL);

Y usando la sintaxis de C++ (pseudocodigo):

#include <gtkmm.h>

GtkWidget * control;

control = Gtk_Window->new(GTK_WINDOW_TOPLEVEL);

La definicion de las variables en Python es mucho mas flexible que en otros lenguajes. Por otra parte, cada objeto importado en Python puede llamar a sus metodos (funciones), similar a la sintaxis de C++. En este caso, se importa el "objeto" (entre comillas) gtk y se usa el metodo Window(). A estas alturas, cuidarse del tipico "casting" de C ya no es un problema, lo que le da a Python bastantes puntos en la programacion en GTK+.

Despues de la "casi" facil explicacion, sigamos.

ventana.set_title("Hola Mundo!")

Solo llama al metodo set_title para cambiar el titulo de la ventana.

ventana.show()

Esta funcion indica a GTK+ que debe mostrar la ventana.

Y la magia termina cuando se llama al loop principal de GTK+:

gtk.Main()

Solo grabar esas lineas de texto en un archivo .py y ejecutar:

usuario@maquina:$ python holamundo.py

Para ejecutar.

Controles

El primer control que aparecio en el ejemplo anterior fue el control GTK_WINDOW (ventana):

 ventana = gtk.Window(gtk.WINDOW_TOPLEVEL)

Cada control esta definido para ser llamado como un control del objeto gtk:

ventana = gtk.Window(gtk.WINDOW_TOPLEVEL)
boton = gtk.Button("Boton")
etiqueta = gtk.Label("Etiqueta")

Cada variable que tenga un control es llamado de la siguiente forma:

variable = gtk.Control(argumentos)

Luego, el control podra llamar a sus metodos :

variable.metodo(argumento1,argumento2,...)
Herramientas personales
Espacios de nombres

Variantes
Acciones
Navegación
Herramientas