PyGTK
PyGTK es un binding de la biblioteca gráfica GTK para el lenguaje de programación Python. La biblioteca GTK se usa para desarrollar el entorno gráfico GNOME, así como sus aplicaciones, a la vez que algunos otros entornos gráficos. La biblioteca GTK permite el desarrollo sencillo de interfaces gráficas y su uso conjunto con Python permite el desarrollo rápido de aplicaciones gráficas potentes.
PyGTK | ||
---|---|---|
Información general | ||
Tipo de programa | Widget toolkit | |
Desarrollador | PyGTK Core development team | |
Licencia | LGPL | |
Información técnica | ||
Programado en | Python | |
Versiones | ||
Última versión estable | 2.24.0 ( 01 de abril de 2011 (12 años, 4 meses y 26 días)) | |
Lanzamientos | ||
PyGTK | PyGObject | |
Enlaces | ||
Ejemplos
A continuación se muestran algunos ejemplos del uso de PyGTK
Hola Mundo
El código siguiente producirá una ventana de 200x200 píxeles con las palabras "Hola mundo" en el interior.
import gtk
def crear_ventana():
ventana = gtk.Window()
ventana.set_default_size(200, 200)
ventana.connect('destroy', gtk.main_quit)
etiqueta = gtk.Label('Hola mundo')
ventana.add(etiqueta)
etiqueta.show()
ventana.show()
crear_ventana()
gtk.main()
Para que el script se pueda ejecutar en un sistema *nix, la primera línea debe ser "#!/usr/bin/env python" o "#!/usr/bin/python" para inidicar donde se encuentra el intérprete. Además, el script debe disponer de permisos de ejecución.
Juego del 15
El siguiente programa es una implementación del juego del 15 que consiste en una ventana y botones que cambiarán su posición conforme se opriman.
import gtk
from random import shuffle
def callback(boton):
(x, y), (bx, by) = boton.posicion, blanco.posicion
if (x-bx, y-by) in [(-1,0), (1,0), (0,1), (0,-1)]:
tabla.remove(boton)
tabla.remove(blanco)
tabla.attach(boton, bx, bx+1, by, by+1)
tabla.attach(blanco, x, x+1, y, y+1)
boton.posicion = (bx, by)
blanco.posicion = (x, y)
tam = 4
ventana = gtk.Window()
ventana.set_default_size(500, 500)
botones = [gtk.Button(str(i)) for i in range(1, tam * tam)]
blanco = gtk.Button()
tabla = gtk.Table(tam, tam, homogeneous=True)
shuffle (botones)
(x, y) = (0, 0)
for i in botones + [blanco]:
if x == tam: x = 0; y += 1
i.connect('clicked', callback)
i.posicion = (x, y)
tabla.attach(i, x, x+1, y, y+1)
x += 1
ventana.connect('destroy', gtk.main_quit)
ventana.add(tabla)
ventana.set_title('Juego del '+str(tam*tam-1))
ventana.show_all()
blanco.hide()
gtk.main()
Note que es posible variar la cantidad de botones de la ventana cambiando el valor de 'tam'. El número de botones será 'tam*tam-1'. Para poder ejecutar éste script, se deberán seguir los pasos mencionados en el ejemplo anterior.
Aplicaciones que usan PyGTK
PyGTK se utiliza en algunos proyectos relevantes, por ejemplo:
- Anaconda (instalador)
- BitTorrent (programa)
- Deluge
- DeVeDe
- Emesene
- Exaile
- Flumotion
- Gajim
- gDesklets
- Gedit (para el subsistema Python y plugins)
- GIMP (para scripts opcionales en Python)
- GNOME Sudoku
- GRAMPS
- Itaka
- Jokosher
- PyMusique
- Pybliographer
- ROX Desktop (incluye ROX-Filer)