« Programmation GTK/Placement avec les tables » : différence entre les versions

Aller à la navigation Aller à la recherche
wikifié
(wikifié)
4.4 Placement avec les tables
 
Étudions une autre méthode de placement : les tables. Elles peuvent s'avérer très utiles dans certaines situations.
 
En utilisant des tables, on crée une grille dans laquelle on peut placer les widgets. Ceux-ci peuvent occuper tous les endroits que l'on désire.
 
La première chose à faire est, bien sûr, d'étudier la fonction <code>gtk_table_new</code> :
 
GtkWidget* gtk_table_new (gint rows,
Le premier paramètre est le nombre de lignes de la table et le deuxième, le nombre de colonnes.
 
Le paramètre homogeneous s'occupe de la façon dont les cases de la table seront dimensionnées. Si homogeneous vaut <code>TRUE</code>, les cases prennent la taille du plus grand widget de la table. S'il vaut <code>FALSE</code>, la taille des cases dépend du widget le plus haut de la ligne et du plus large de cette colonne.
 
Le nombre de lignes et colonnes va de 0 à n, où n est le nombre spécifié dans l'appel à <code>gtk_table_new</code>. Ainsi, avec <code>rows = 2</code> et <code>columns = 2</code>, la table ressemblera à ceci :
 
0 1 2
Où le premier paramètre (table) est la table que l'on a créée et le second (child) est le widget que l'on veut placer dans la table.
 
Les paramètres left_attach et right_attach spécifient l'emplacement du widget et le nombre de cases à utiliser. Par exemple, si on veut placer un bouton dans le coin inférieur droit de la table décrite plus haut et que l'on désire ne remplir QUE cette case, <code>left_attach</code> vaudra 1, <code>right_attach</code> vaudra 2; <code>top_attach</code> vaudra 1 et <code>bottom_attach</code> vaudra 2.
 
Si on veut un widget occupant toute la ligne supérieure de notre table, on utilisera les valeurs 0, 2, 0, 1.
Ces options sont :
 
:* <code>GTK_FILL</code> - Si la case de la table est plus large que le widget, et que GTK_FILL est spécifié, le widget s'élargira pour occuper toute la place disponible.
:* <code>GTK_SHRINK</code> - Si la table a moins de place qu'il ne lui en faut (généralement, à cause d'un redimensionnement de la fenêtre par l'utilisateur), les widgets sont alors simplement poussés vers le bas de la fenêtre et disparaissent. Si <code>GTK_SHRINK</code> est spécifié, les widgets se réduiront en même temps que la table.
:* <code>GTK_EXPAND</code> - Cette option provoque l'extension de la table pour qu'elle utilise tout l'espace restant dans la fenêtre.
 
Le paramêtres de padding jouent le même rôle que pour les boîtes, il créent une zone libre, spécifiée en pixels, autour du widget.
 
<code>gtk_table_attach()</code> a BEAUCOUP d'options. Voici donc une fonction-raccourci :
 
void gtk_table_attach_defaults (GtkTable *table,
gint bottom_attach);
 
<code>xoptions</code> et options<code>yoptions</code> valent par défaut <code>GTK_FILL | GTK_EXPAND</code>, et <code>xpadding</code> et <code>ypadding</code> valent 0. Les autres paramètres sont les mêmes que ceux de la fonction précédente.
 
Il existe aussi les fonctions <code>gtk_table_set_row_spacing()</code> et <code>gtk_table_set_col_spacing()</code>. Elles permettent de placer des espaces après une ligne ou une colonne.
 
void gtk_table_set_row_spacing (GtkTable *table,
31

modifications

Menu de navigation