Tabla de contenidos
Normalmente, cuando se crea un programa, se desea poner más de un control en la
ventana. Nuestro primer ejemplo "Hola Mundo" usaba un único control para poder
llamar simplemente al método add() de la clase
gtk.Container para "empaquetar" el control en la
ventana. Sin embargo, en cuanto se quiera poner más de un control en una
ventana, ¿cómo se determina la posición en la que se sitúa el control?.
Aquí es donde el "empaquetado" de controles entra en juego.
La mayoría del empaquetado se realiza utilizando cajas. Éstas son contenedores invisibles de controles y son de dos tipos: cajas horizontales y cajas verticales. En el primer tipo los los objetos se insertan horizontalmente, de izquierda a derecha o de derecha a izquierda, en función de la llamada que se use; mientras que en el segundo tipo, las cajas verticales, los controles se empaquetan de arriba a abajo o viceversa. Es posible utilizar combinaciones de cajas insertadas en otras cajas y obtener cualquier efecto que se desee.
Para crear una nueva caja horizontal se usa la llamada
gtk.HBox(), y con cajas verticales
gtk.VBox() . Los métodos
pack_start() y pack_end()
se utilizan para colocar los objetos dentro de
estos contenedores. El primer método, pack_start(),
inserta los objetos yendo de arriba hacia abajo en una caja vertical, y de
izquierda a derecha en una caja horizontal. El método
pack_end() muestra el comportamiento opuesto,
empaqueta de abajo hacia arriba en una caja vertical, y de derecha a izquierda
en una caja horizontal. Con estos métodos se pueden alinear a la derecha
o a la izquierda los controles, de tal forma que se consiga el efecto buscado.
A lo largo de los ejemplos de este tutorial se usará fundamentalmente
el método pack_start().
Un objeto puede ser además bien otro contenedor o bien un control. De
hecho, muchos controles son en realidad también contenedores,
como ocurre con los botones, aunque normalmente se use sólo una
etiqueta en su interior.
Con las llamadas anteriores se indica a GTK+ cómo ha de situar los controles y así es capaz de cambiar su tamaño y otras propiedades interesantes de forma automática. Y, como es de esperar, dicho método proporciona además gran flexibilidad a la hora de situar y crear controles.