jump to navigation

Desarrollo rápido julio 5, 2006

Posted by libera2 in Programación, Software Libre.
7 comments

Escriba un programa en 5 minutos. ¿Cómo? Con Python y Glade, escribir una pequeña aplicación es cuestión de minutos. He aquí un pequeño ejemplo, como no, el clásico «Hola mundo»:

  • Primero abrimos Glade, el diseñador de interfaces. Aparecerán tres ventanas, algo parecido a esto:
  • Hacemos click en «Nuevo», y nos pregunta si queremos hacer una aplicación GTK o Gnome. Por lo general, nos bastará con una GTK, pero Gnome tiene controles más avanzados, como calendarios y diálogos de impresión.
  • Creamos una nueva ventana, haciendo click en el botón correspondiente de la paleta de controles.
  • Una ventana vacía aparece en la pantalla. Utilizaremos una «caja horizontal» para colocar el resto de los controles. Si necesitas interfaces más complejas, recuerda que puedes meter cajas horizontales y verticales, unas dentro de otras. Esta manera de crear la interfaz, aunque parezca un poco compleja al principio, permite hacer ventanas escalables que siempre mantienen su proporción original. Para este ejemplo utilizaremos una caja de dos columnas:
  • Ahora, rellenaremos los huecos con controles. Para este ejemplo usaremos una entrada de texto y un botón. Nuestro objetivo será que al pulsar el botón, aparezca el famoso «hola mundo» en la caja de texto. Simplemente hacemos click primero en el control y luego en el hueco de la ventana para añadir el control.
  • Ahora editamos las propiedades de los controles. Cambiaremos el título de la ventana y la etiqueta del boton:

  • Este es el ultimo paso del diseño de la interfaz, y de los más importantes. Se trata de establecer que señales utilizaremos en nuestro programa. Es decir, que eventos van a provocar una acción en nuestro programa. En este caso vamos a añadir dos señales: Una en la ventana y otra en el botón. En la ventana, utilizaremos la señal «remove» para salir de la aplicación cuando el usuario la cierre. En el botón, usaremos «clicked» para que el programa reaccione cuando lo pulsemos.

    Y hasta aquí el diseño de la interfaz. Ahora, ¡a programar!

#!/usr/bin/env python
import gtk, gtk.glade, gobject

La cabecera del programa, indicando que es un programa escrito en python, y que debe cargar los módulos gtk. El código debería comprobar primero si se encuentran los módulos necesarios y lanzar un mensaje de error si no lo están, pero eso se escapa del propósito de este tutorial. Ahora creamos una nueva clase, llamada «aplicacion»

class Aplicacion:

Dentro de la clase, haremos una funcion «pulsa_boton» que sera llamada cuando el boton se pulse. más adelante se verá de donde viene «cuadro_texto»

    def pulsa_boton(self, obj):
        self.cuadro_texto.set_text("Hola, mundo!!")

El procedimiento «__init__», que será llamado cuando se cree la aplicacion:

    def __init__ (self):
        self.arbol = gtk.glade.XML("prueba.glade", "window1")
        self.cuadro_texto = self.arbol.get_widget("entry1")

Ya hemos cargado el fichero de glade, y buscamos el cuadro de texto, el cual vamos a modificar cuando el boton se pulse. Mucho ojo con esto, aquí simplemente hemos puesto «prueba.glade», pero para un programa más serio será necesario «adivinar» la ruta del fichero glade. P. Ej: /usr/share, /usr/local/share, etc.

        diccionario = {
          "on_button1_clicked": self.pulsa_boton,
          "on_window1_remove": gtk.main_quit
        }

Este es el diccionario de señales. Relaciona el nombre de la señal, con la funcion que se llamará cuando esta se active.

        self.arbol.signal_autoconnect(diccionario)
        gtk.main()

Conectamos las señales, y empezamos el programa

app = Aplicacion()

Esto es lo que construye una clase del tipo «Aplicacion». Automaticamente «__init__» será llamado y nuestra aplicacion aparecerá en pantalla. ¡Hola mundo!