Hola, empiezo aquí a dejar mis apuntes, recetas o como quiera llamarse, y empiezo por describir como hacer un ejemplo muy simple de programa en python, usando GTK mas Glade, vamos a ello.
La versión que uso de Glade es la 3.8.0, aunque tengo también instalada la 3.12.1 que es para GTK3 pero da algunos problemas, como las cajas creadas con GtkVBox o GtkHBox, pues crea GtkBox, también pasa lo mismo con los controles GtkHButtonBox y GtkVButtonBox, crando GtkButtonBox. Dicho esto vamos al lío.
Uso el editor geany, que ha sido una grata sorpresa por lo liviano y rápido que es, además de tener para mi lo necesario. Eclipse esta bien, pero desde que tengo genay, casi no lo uso.
Para empezar, creo el código fuente del programa, algo básico como esto:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
import gtk
class gui:
#
# METODOS DE RETROLLAMADA
#------------------------------------
def hola(self, widget):
print "Hola!!!"
def destroy(self, widget):
gtk.main_quit()
def __init__(self):
#
# CDIGO DE CONSTRUCCION DE GUI
#-----------------------------------------------
filename = "foo.glade"
builder = gtk.Builder()
builder.add_from_file(filename)
builder.connect_signals(self)
#
# En espea de eventos y acciones usuario
#
def main(self):
gtk.main()
if __name__ == "__main__":
gui_instance = gui() # crea un objeto gu
gui_instance.main() # llama al mtodo principal
A continuación creo la parte gráfica con glade. A tener en cuenta que hay que configurar la salida del formato para GtkBuilder y no para libglade. Y también que cuando creemos la ventana principal, ir a las propiedades comunes para hacer visible la ventana, ya que sin esto el programa se ejecuta pero no mostraría la ventana.
Creo la ventana principal, en sus propiedades, en señales busco la opcion destroy y la asocio con el método destroy, y en comunes, la hago visible. A continuación creo un caja vertical de dos porciones, una para cada botón. Los creo y les pongo nombre en la propiedad etiqueta, busco la señal clicked y la asocio con el botón llamado Salir en su señal destroy, al otro lo asocio su señal clicked con hola, para mostrar el Hola!!! por consola.
Así de fácil, crear los métodos o funciones para cada evento o acción realizada por el usuario y conectarlas por su nombre en glade en la sección señales de los controles usados.
En cuanto al uso de Glade 3.12.1, lo intercambio con 3.8.0 , pues no puedo crear cajas en el, o bien si se crean después hay que ir a editar el archivo en cuestión y añadirles la V o la H que corresponda.
Salu2 Sierra21