Capítulo 4. Empaquetado de Controles

Tabla de contenidos

4.1. Teoría de Cajas Empaquetadoras
4.2. Las Cajas en detalle
4.3. Programa de Ejemplo de Empaquetado
4.4. Uso de Tablas para el Empaquetado
4.5. Ejemplo de Empaquetado con Tablas

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.

4.1. Teoría de Cajas Empaquetadoras

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.