3 may. 2011

Aprendiendo GtkBuilder y Python Parte 1

Bueno, como les había dicho, hoy arrancamos el primer tutorial donde voy a explicar de forma fácil GtkBuilder y Python. Para los más novatos GtkBuilder es un sistema relativamente nuevo que ha sido el reemplazo de la tecnología en desaparición libglade.

En Internet hoy en día no hay muchos tutoriales para poder aprender de manera rápida y eficiente GtkBuilder, entonces estoy dejando mi contribución.

Lo primero sera instalar las dos herramientas que vamos a usar para poder programar nuestro programa, que ya les cuento de que se trata. Con el siguiente comando instalaremos Glade y Geany.

sudo apt-get install glade geany

El programa que vamos a realizar se ve como este:


Básicamente cuando lo cree, era un programa para crear una lista de contenido multimedia y enviarla por medio de D-Bus a Rygel y que este enviara un stream a un televisor LED Samsung. En nuestro caso no queremos hacer nada tan complejo porque tocaría escribir un tutorial de D-Bu. Le haremos unas cuantas modificaciones para que simplemente sea un programa que reproduzca contenido multimedia usando Gstreamer.

Este programa permitirá entender los siguientes conceptos.


Adicionalmente el código sera vigente, lo que quiere decir que nuestro programa podrá correr en Gtk2 o Gtk3. NO usaremos nada de Pygtk porque como ya sabemos pygtk esta muriendo, usaremos solo dos elementos de la nueva tecnología que reemplazara a pygtk.

GLADE

Manos a la obra, lo primero es abrir Glade y crear una ventana en blanco.
Después de creada debemos hacerla visible.
Adicionalmente en la pestaña general pueden ponerle un tamaño predeterminado a la ventana, a mi personalmente me gusta ponerle a este programa 500 x 500

Lo segundo sera crear cuatro cajas verticales como se muestra en la figura.
Lo tercero es poner una barra de herramientas en la primera caja de la parte superior.
En cuarto lugar pondremos una barra de herramientas en la caja 2
En el quinto paso realizaremos dos cosas, la primera sera poner una ventana con barras de desplazamiento y dentro de esa ventana recién creada, pondremos una vista de árbol.

Para el paso final dividimos el ultimo elemento en dos cajas verticales y ponemos un boton label y un boton combobox.

Ya tenemos lo básico listo, ahora vamos a configurar un poco la interfaz para dejarla lista para comenzar a programar.

Lo primero sera editar la barra de herramientas o toolbar, para ello seleccionamos este elemento en la lista superior derecha y le damos en el icono parecido a un lapiz.

Agregamos los botones que requerimos que son:

Añadir
Abrir
Guardar
Eliminar
Limpiar
Separador (Le damos click en la columna tipo y seleccionamos separador)
Subir
Bajar
Separador
Reproducir
Detener
Salir

Se debe ver así:

Ahora vamos a configurar la parte inferior para ello lo primero sera seleccionar el hbox y le damos en la pestaña empaquetado y en el comando expandir le damos que no. Se debe ver de la siguiente forma, adicional a la imagen pueden poner en donde dice separación un valor de 4.

En la etiqueta Label ponemos el termino "Orden" y en donde dice separación ponemos un valor de 4.
Ya hemos terminado lo básico del programa, en esta parte no realizaremos más edición sobre lo gráfico en el segundo tutorial organizaremos muchas mas cosas visuales.

Finalmente guardamos le ponen algún nombre y lo terminan con la extensión .ui en mi caso lo guarde como Mutiplay.ui

PYTHON

En el código en python por ahora solo vamos a ejecutar el programa.

#!/usr/bin/python from gi.repository import Gtk class main: def __init__(self): # Crea la ventana de trabajo Principal y obtiene los objetos en Glade builder = Gtk.Builder() builder.add_from_file("Multiplay.ui") #Ejecucion del programa if __name__ == "__main__": main() Gtk.main()
Voy a explicar el código rápidamente, la primera linea, from gi.repository import Gtk lo que hace es busca el modulo gi e importa Gtk esto antes se hacia con pygtk pero recuerden que esto ya esta muriendo, si quieren utilizar Gtk 3 tienen que instalar en synaptic el modulo gi de Gtk3 y el programa automáticamente buscara Gtk3. Si quieren probar el programa con Gtk 3 deben:

sudo apt-get install gir1.2-gtk-3.0

Bueno ahora que ya hemos importado Gtk debemos crear una clase de nombre main y dentro vamos a cargar la interfaz gráfica que hemos realizado en Glade, para ello lo primero sera definir el builder que es una función para Gtk y lo segundo sera usar el builder definido para buscar desde un archivo el codigo XML eso lo realiza la linea builder.add_from_file("Multiplay.ui") Donde Multiplay.ui es el nombre que le pusimos al archivo que guardamos antes.

Finalmente las ultimas lineas de ejecución del programa lo que hacen es que si se llama la función __name__ entonces corra el programa.

Por ahora no va más, espere pronto, muy pronto la segunda parte.

1 comentario:

  1. Hola, muy buen día. Antes que nada muchísimas gracias por este tutorial, me es de mucha ayuda.
    Creo que donde dice "Lo tercero es poner una barra de herramientas en la primera caja de la parte superior." debería hacer referencia a una barra de menú.
    Saludos y éxitos!
    José Luis.

    ResponderEliminar