Les tableaux (tables)

  1. Introduction
  2. Création d’un tableau

1. Introduction

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.

2. Création d’un tableau

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 :

  • table s’agit du nom du tableau;
  • child s’agit du contenu à mettre dans la cellule du tableau ;
  • left_attach définit la position à gauche du contenu;
  • right_attach définit la position à droite du contenu;
  • top_attach définit la position supérieure du contenu;
  • bottom_attach définit la position inferieure du contenu;
  • xoptions permet de spécifier la façon dont le contenu se positionne horizontalement par rapport au tableau;
  • yoptions permet de spécifier la façon dont le contenu se positionne verticalement par rapport au tableau;
  • xpadding définit l’espace à ajouter à droite ou au-dessus du contenu;
  • ypadding définit l’espace à ajouter à gauche ou en-dessous du contenu.

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

Voila un tableau d’une ligne et deux colonnes. Attention les bordures sont invisibles.

Pour déterminer le positionnement de nos widgets, voici comment on fait la lecture :
Les tables, cours langage C, gtk+

Voici une capture du résultat final :
Les tables (tableaux), cours langage C, gtk+

Code source :



Une question? Cliquez ici pour la poser.

Retour sur le portail du langage C/C++