Si on veut mettre plusieurs widgets et les bien positionner comme on le souhaite, les box ne sont certainement pas la meilleur solution surtout si on se trouve avec un nombre important de widgets. Pour résoudre ce problème, on utilisera au moins un tableau (table). Comme ça, on peut mettre et positionner les widgets dans les cellules du tableau comme on veut.
Pour créer un tableau, nous allons déclarer un pointeur. Bien que le widget concernant les tabeaux soit
GtkTable, nous allons déclarer un objet GtkWidget.
Dans notre cas, ça sera :
Ensuite, on passe à l’initialisation et à la création du tableau.
Syntaxe :
GtkWidget* gtk_table_new(guint nombres-de-lignes, guint nombres-de-colonnes, gboolean homogeneous);
Le paramètre homogeneous définit si tous les widgets dans GtkTable utilisent un espace équivalent.
Dans notre cas, ça sera :
Maintenant que le tableau est créé, il ne reste qu’à l’insérer dans la fenêtre. Et pour cela, on va utiliser*
cette syntaxe :
void gtk_table_attach( GtkTable *table, GtkWidget *child,
guint left_attach, guint right_attach,
guint top_attach, guint bottom_attach,
GtkAttachOptions xoptions, GtkAttachOptions yoptions,
guint xpadding, guint ypadding);
Ça mérite une petite explication, bon voyons :
Passons maintenant à un exemple concret. Nous allons prendre notre exemple précédent et utiliser un tableau à la place de la box.
Voyons comment va être notre tableau:
texte | Bouton |
Pour déterminer le positionnement de nos widgets, voici comment on fait la lecture :
Voici une capture du résultat final :
Code source :