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

aucun résumé des modifications
Aucun résumé des modifications
 
Aucun résumé des modifications
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 gtk_table_new&nbsp:
 
GtkWidget* gtk_table_new (gint rows,
gint columns,
gint homogeneous);
 
Le premier paramètre est le nombre de lignes de la table et le deuxième, le nombre de colonnes.
Le nombre de lignes et colonnes va de 0 à n, où n est le nombre spécifié dans l'appel à gtk_table_new. Ainsi, avec rows = 2 et columns = 2, la table ressemblera à ceci&nbsp:
 
0 1 2
0+----------+----------+
| | |
1+----------+----------+
| | |
2+----------+----------+
 
On notera que le système de coordonnées part du coin en haut à gauche. Pour placer un widget dans une case, ou utilise la fonction suivante&nbsp:
 
void gtk_table_attach (GtkTable *table,
GtkWidget *child,
gint left_attach,
gint right_attach,
gint top_attach,
gint bottom_attach,
gint xoptions,
gint yoptions,
gint xpadding,
gint ypadding);
 
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.
gtk_table_attach() a BEAUCOUP d'options. Voici donc une fonction-raccourci&nbsp:
 
void gtk_table_attach_defaults (GtkTable *table,
GtkWidget *widget,
gint left_attach,
gint right_attach,
gint top_attach,
gint bottom_attach);
 
xoptions et options valent par défaut GTK_FILL | GTK_EXPAND, et xpadding et ypadding valent 0. Les autres paramètres sont les mêmes que ceux de la fonction précédente.
Il existe aussi les fonctions gtk_table_set_row_spacing() et gtk_table_set_col_spacing(). Elles permettent de placer des espaces après une ligne ou une colonne.
 
void gtk_table_set_row_spacing (GtkTable *table,
gint row,
gint spacing);
 
et
 
void gtk_table_set_col_spacing (GtkTable *table,
gint column,
gint spacing);
 
Pour les colonnes, l'espace est ajouté à droite de la colonne et pour les lignes, il est ajouté en dessous.
On peut aussi configurer un espacement pour toutes les lignes et/ou colonnes avec&nbsp:
 
void gtk_table_set_row_spacings (GtkTable *table,
gint spacing);
 
Et,
 
void gtk_table_set_col_spacings (GtkTable *table,
gint spacing);
 
Avec ces appels, la dernière ligne et la dernière colonne n'ont pas d'espace supplémentaire.
Utilisateur anonyme