jueves, 20 de septiembre de 2007

Python + Gtk = PyGtk

Hola !!! esta ocasion tratare de explicar un poco acerca de como podemos crear una aplicacion de ventana con gtk y python. Para instalar esta libreria debemos acerlo de la siguiente forma:

apt-get install python-gtk2
Ahora debemos escribir el siguiente codigo en nuestro editor de textos favorito,

$nano pygtk1.py


#!/usr/bin/env python

#Importamos a las librerias con las q' trabajaremos
import pygtk
pygtk.require('2.0')
import gtk

#Creamos nuestra ventana Principal
window = gtk.Window()
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.connect("delete-event", gtk.main_quit)
window.set_title("Primeros pasos con GTK")
window.set_default_size(450,250)

#Creamos un objeto layout para colocar nuestros widgets

lay = gtk.Layout(None,None)
lay.set_size(440,240)

#Creamos nuestros botones
b1 = gtk.Button(stock=gtk.STOCK_OK)
b2 = gtk.Button(stock=gtk.STOCK_CLEAR)

nombre = gtk.Label("Escribe tu nombre: ")
datos = gtk.Label("")

entry = gtk.Entry(max=30)
lay.put(nombre,50,50)
lay.put(entry,180,50)
lay.put(b1,170,100)
lay.put(b2,260,100)
lay.put(datos,200,180)

#Definimos nuestras funciones que haran caso a las llamadas de los botones

def on_b1_clicked(b1):
text=entry.get_text()
datos.set_text("Saludos " + text + " Bienvenido a PyGtk ")

def on_b2_clicked(b2):
entry.set_text("")
datos.set_text("")

#Añadimos las señales a la accion clicked de los botones
b1.connect("clicked", on_b1_clicked)
b2.connect("clicked", on_b2_clicked)

#Agregamos nuestro objeto contendor a la ventana

window.add(lay)
window.show_all()
gtk.main()

Ahora ejecutamos nuestro programa asi:

$python pygtk1.py

Aqui puedes encontrar mas informacion tutorial de Pygtk
Mas o menos asi les debe quedar

Bueno espero sea de su agrado este sencillo ejemplo, tratare de ser mas explicito en las siguientes entradas ..

Happy coding !!!

3 comentarios:

Unknown dijo...

Muy bueno el ejemplo.
Como seria usando el Patron Comando ?
Es decir encapsulando las ordenes de hacer click en objetos ?

S2

DerloK dijo...

pregunta: porque importas gtk y pygtk si despues solo usas gtk?

saludos

jorge piscoya dijo...

hola, he copiado tu ejemplo pero me sale el siguiente error
Sorry: IndentationError: ('expected an indented block', ('pygtk1.py', 37, 4, 'text=entry.get_text()\n'))
y no me deja continuar con la ejecución,, quiza me falte alguna libreria instalar??
utilizo geany y eric como IDEs

ShareThis