Hola, veamos la forma de crear a partir de un fichero con extensión .glade creado con Glade 3 el archivo en formato .xml para poderlo conectar con nuestro código en Python.
Bien, lo primero que haremos es abrir Glade 3 y crearnos una interfaz gráfica para nuestro programa,por ejemplo una ventana vacía. Antes de cerrar Glade3 acordaros de en el objeto ventana que hemos creado establecer la Propiedad de Visible a “Yes”. Supongamos que lo hemos guardado con el nombre tutorial.glade. Claro con esto no hacemos nada para programar en Python, para solucionarlo vamos a convertir dicho fichero de tipo glade a formato XML. Abrimos terminal y escribimos:
gtk-builder-convert tutorial.glade tutorial.xml
Ya lo tenemos en formato XML, y con éste ya vamos a poder trabajar bajo Python. Seguidamente creamos un fichero en código Python para poder comunicarnos con el fichero tutorial.xml, y así poder ser capaces de ejecutar el programa y que nos aparezca la ventana. Yo le he llamado al fichero tutorial.py, lo podéis crear con el editor que os de la gana: Geany, Netbeans, Gedit, Kate, Anjuta, IDLE, etc, etc. Os pongo el código junto con la explicación de lo que hace:
#!/usr/bin/python
#Importamos la librería pygtk
import pygtk
#Especificamos la versión de pygtk a usar, normalmente la 2.0
pygtk.require("2.0")
#Importamos la librería gtk
import gtk
class TutorialApp(object):
def __init__(self):
#Cargamos el constructor de gtk y lo llamamos builder
builder = gtk.Builder()
#Cargamos con builder nuestro fichero de glade3 convertido a
#formato XML
#En nuestro caso al fichero le hemos llamado tutorial.xml
builder.add_from_file("tutorial.xml")
#Conectamos la señal de cerrar ventana
builder.connect_signals({ "on_ventana_destroy" : gtk.main_quit })
#Obtenemos el objeto ventana, en mi caso a
#al objeto ventana en Glade3 le he llamado ventana
self.window = builder.get_object("ventana")
#Mostramos la ventana por pantalla
self.window.show()
if __name__ == "__main__":
#A la clase que he definido como TutorialApp le asigno el nombre app
app = TutorialApp()
#De app sobre window le especifico que me lo muestre
app.window.show()
#Cargamos gtk, esta orden es imprescindible
gtk.main()
La ventaja de hacerlo así es que podemos editar nuestras interfaces gráficas de nuestros programas de forma gráfica e intuitiva con Glade3, sin tener que programarlo todo a pelo.
En Glade3 se optó por no generar el código directamente para poderlo convertir a XML, que es más portable, y por ejemplo podemos usar el mismo fichero xml para programar, por ejemplo, en C/C++. Lo malo es que a los desarrolladores de Glade3 se les ha “olvidado” crear una opción con un simple botón para que nos convierta el fichero en formato glade a formato xml, y así evitarnos el tener que hacerlo nosotros a mano por la terminal 
En el siguiente artículo podréis aprender más sobre dicho tema, con otro ejemplo más elaborado, y enfocado también a C/C++, el artículo está dividido en 3 partes, y aunque esta escrito en inglés es fácilmente entendible.
Saludos :-h
, y además nos normaliza directamente el archivo u archivos. Lógicamente podemos ripear desde un CD, desde el mismo PC, etc. En fin, un programita bastante completito, liviano y útil.





Comentarios