Esta es una de las características que pueden hacer algo diferente a GTK+ respecto a otras bibliotecas de interfaces gráficas, los contenedores. Mientras que en otras bibliotecas de interfaces gráficas los widgets se colocan mediante coordenadas, en GTK+ se colocan usando otros contenedores que crean la distribución de la aplicación y contienen a los widgets que realizan acciones como botones, cajas de texto, ...
Una aplicación GTK+ viene definida por un widget de una ventana en el cual se colocan los otros widgets (entradas de texto, etiquetas, botones, ...) para formar una interfaz gráfica de usuario. La peculiaridad de GTK+ es cómo se colocan dichos widgets, para ello se hacen uso de otros widgets llamados contenedores, éstos sirven para (como su propio nombre indica) contener otros widgets, de modo que para distribuir los widgets por la ventana primero deberemos colocar algún contenedor sobre el cual insertar dichos widgets.
Hay varios widgets básicos de contenedores:
Como podéis ver os enlazo a la documentación de la API de GTK+ para cada widget, para mí es el mejor recurso de documentación.
Los widgets GtkHBox y GtkVBox, como podéis ver en la API, sólo tienen una función asociada:
GtkWidget *gtk_hbox_new (gboolean homogeneous, gint spacing);
Esta función sirve para crear un GtkHBox (para GtkVBox habría que cambiar hbox por vbox en el nombre de la función). Recibe dos parámetros que sirven para que los widgets se distribuyan en tamaños iguales (homogeneous) y para definir los pixeles por defecto entre widgets (spacing).
Hay que entender que para que estos widgets ejerzan de contenedores hay que usar las funciones de GtkBox, que es algo así como una interfaz que define operaciones para sus hijos, entre ellos los anteriores widgets. De GtkBox, las funciones más importantes son:
gtk_box_pack_start (GtkBox *box, GtkWidget *child, gboolean expand,
gboolean fill, guint padding);Esta función sirve para colocar widgets de izquierda a derecha (en cualquier GtkHBox) o de arriba a abajo (en cualquier GtkVBox).
gtk_box_pack_end (GtkBox *box, GtkWidget *child, gboolean expand,
gboolean fill, guint padding);Esta función sirve para colocar widgets al revés que la anterior.
Los parámetros de cada una de estas funciones son:
También existen otras dos funciones que nos ahorran trabajo si queremos dejar los parámetros predeterminados de los contenedores, éstas son:
gtk_box_pack_start_defaults (GtkBox *box, GtkWidget *widget);
Esta función sirve para colocar widgets de izquierda a derecha (en cualquier GtkHBox) o de arriba a abajo (en cualquier GtkVBox).
gtk_box_pack_end (GtkBox *box, GtkWidget *widget);
Esta función sirve para colocar widgets al revés que la anterior.
Para que podáis entender esto mejor os dejo este ejemplo, que es el que viene en el tutorial oficial de GTK+.
Publicado inicialmente (sin algunos cambios que he realizado aquí) en 4 bits.
Este usuario no ha completado su perfil.
© Copyright 2008-2009 debug_mode=ON | Aviso legal | Contacto | FAQ | ¿Quiénes somos? |