sábado, 4 de diciembre de 2010

Posicionando cajas en pygtk

Hoy pude divertirme un poco con pygtk, se me ocurrió la idea de hacer una pequeña aplicación que mezclara la posición de cajas, algo que no había hecho, y he aquí el resultado bien documentado, espero.



El código fuente aquí.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Importa las librerías a usar
import pygtk
# Revisa la versión requerida para usar
pygtk.require('2.0')
# Importa otra librería que se usará
import gtk

# Se crea la clase "Base" que se usará
class Base:
# Se define la función con la cual se sale de la aplicación
def salir(self, widget, data=None):
# gtk.main_quit sale sel ciclo gtk.main y termina la aplicación
gtk.main_quit()

# Se define la función para iniciar con la aplicación
def login(self):
# Se crea la ventana principal
wprincipal = gtk.Window(gtk.WINDOW_TOPLEVEL)
# Se asigna título a la ventana principal
wprincipal.set_title("Cajas")
# Se establece el tamaño de la ventana
wprincipal.set_size_request(150, 85)
# Se posiciona la ventana en la pantalla
wprincipal.move(500,300)
# Se conecta la señal "delete_event" con la función "salir"
wprincipal.connect("delete_event", self.salir)
#------------------------ Comienza la creación de controles-----------------------------
# Se crea la caja vertical número 1, el parámetro "False" permite que
# los controles que contenga NO tengan todoso el mismo tamaño
vb1 = gtk.VBox(False, 3)
# Se añade la caja vertical a la ventana principal
wprincipal.add(vb1)
# Se crea la caja vertical número 2
vb2 = gtk.VBox(True, 3)
# Se crea la caja horizontal número 1
hb1 = gtk.HBox(True, 3)
# Se crea la caja horizontal número 2
hb2 = gtk.HBox(True, 3)
# Se creal el botón número 1
bt1 = gtk.Button("1")
# Se crea el botón número 2
bt2 = gtk.Button("2")
# Se crea el botón número 3
bt3 = gtk.Button("3")
# Se crea el botón número 4
bt4 = gtk.Button("4")
#------------------------ Termina la creación de controles------------------------------
#------------------------ Comienza el empaquetado de controles --------------------------------
# El botón número 1 se empaqueta en la caja horizontla número 1
hb1.pack_start(bt1, True, True, 0)
# El botón número 2 se empaqueta en la caja vertical número 2
vb2.pack_start(bt2, True, True, 0)
# El botón número 3 se empaqueta en la caja vertical número 2
vb2.pack_start(bt3, True, True, 0)
# La caja vertical número 2 se empaqueta en la caja horizontal número 1
hb1.pack_start(vb2, True, True, 0)
# La caja horizontal número 1 se empaqueta en la caja vertical número 1
vb1.pack_start(hb1, True, True, 3)
# El botón número 4 se empaqueta en la caja horizontal número 2
hb2.pack_start(bt4, True, True, 0)
#La caja horizontal número 2 se empaqueta en la caja vertical número 1
vb1.pack_start(hb2, True, True, 0)
#------------------------ Termina el empaquetado de controles ---------------------------------
# Se muestran TODOS los controles
wprincipal.show_all()
# Se define la función "__init__" que es el inicio de la aplicación desde el ciclo gtk.main
def __init__(self):
# Se llama a la función "login", nuestro verdadero inicio de la aplicación
self.login()
# Se define la función "main", que será el inicio de la aplicación desde python
def main(self):
# Se llama al ciclo principal de gtk.main
gtk.main()

if __name__ == "__main__":
base = Base()
base.main()

No hay comentarios.:

Publicar un comentario