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

Aller à la navigation Aller à la recherche
aucun résumé de modification
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

Menu de navigation