Documente Academic
Documente Profesional
Documente Cultură
page=page_7
Forums Tutoriels Magazine FAQs Blogs Chat Newsletter tudes Emploi Club
Contacts
p
u
Developpez.com b
l
i
Club des dveloppeurs et IT pro c
i
t
Plus de 4 millions de visiteurs uniques par mois
Accueil ALM Java .NET Dv. Web EDI Programmation SGBD Office Solutions d'entreprise Applications Mobiles Systmes
Accueil C Forums C FAQ C Tutoriels C Livres C Compilateurs et outils C Sources C Bibliothques C GTK+
ACCUEIL GTK+ FORUM GTK+ FAQ GTK+ TUTORIELS GTK+ SOURCES GTK+ BIBLIOTHEQUES LIVRES GTK+ OUTILS GTK+
Cours GTK 2
VII-A. Introduction
Reprenons l'exemple que nous avons cr dans le chapitre prcdent sur les GtkBox.
Nous avons cr une fentre contenant quatre boutons :
Pour faire cela sans GtkTable, nous avons d crer deux GtkBox, une premire
verticale, puis une deuxime horizontale dans laquelle nous avons plac les boutons
2 et 3, puis ajouter le quatrime bouton dans la premire GtkBox (verticale), voila
beaucoup de travail pour pas grand-chose.
Avec le widget GtkTable, la premire chose faire sera de choisir le nombre de lignes
et de colonnes sur cette grille. Dans notre cas, il s'agit d'une grille trois lignes et
deux colonnes :
Ensuite il suffit de placer nos boutons sur cette grille, en spcifiant en premier les
points de dpart et d'arrive suivant les colonnes puis suivant les lignes :
VII-B-1. Cration.
Slectionnez
GtkWidget* gtk_table_new(guint rows, guint columns, gboolean homogeneous);
Slectionnez
void gtk_table_attach( GtkTable *table, GtkWidget *child,
premire vue, cette fonction peut apparatre complique, mais elle est en ralit
trs simple. Le paramtre child reprsente le widget attacher la grille, les
paramtres left_attach et right_attach, les positions gauche et droite du widget et
les paramtres top_attach et bottom_attach, les positions suprieures et infrieures
du widget.
xoptions = GTK_EXPAND
yoptions = GTK_EXPAND
xoptions = GTK_EXPAND |
GTK_FILL
yoptions = GTK_EXPAND
xoptions = GTK_EXPAND
yoptions = GTK_EXPAND |
GTK_FILL
xoptions = GTK_EXPAND |
GTK_FILL
yoptions = GTK_EXPAND |
GTK_FILL
Slectionnez
void gtk_table_attach_defaults(GtkTable *table, GtkWidget *child,
guint left_attach, guint right_attach,
guint top_attach, guint bottom_attach );
Ceci est la version simplifie de la premire fonction car elle dfinit automatiquement
les paramtres xoptions et yoptions GTK_EXPAND | GTK_FILL et les paramtres
xpadding et ypadding 0.
Slectionnez
void gtk_table_resize(GtkTable *table, guint rows, guint columns);
Le paramtre table est la GtkTable modifier, et les paramtres rows et columns les
nouveaux nombres de lignes et de colonnes.
Ces deux fonctions permettent de changer l'espace d'une ligne ou d'une colonne
spcifique :
Slectionnez
gtk_table_set_row_spacing(GtkTable *table, guint row, guint spacing);
gtk_table_set_col_spacing(GtkTable *table, guint column, guint spacing);
La premire dfinit l'espace autour d'une ligne tandis que la deuxime fait la mme
chose pour une colonne.
Celles-ci ont le mme rle que les deux prcdentes fonctions, mais agissent sur
l'ensemble de la GtkTable :
Slectionnez
gtk_table_set_row_spacings(GtkTable *table, guint spacing);
gtk_table_set_col_spacings(GtkTable *table, guint spacing);
Slectionnez
guint gtk_table_get_row_spacing(GtkTable *table, guint row);
guint gtk_table_get_col_spacing(GtkTable *table, guint column);
guint gtk_table_get_default_row_spacing(GtkTable *table);
guint gtk_table_get_default_col_spacing(GtkTable *table);
Les deux premires fonctions permettent de connatre l'espace entre ligne numro
row (ou la colonne numro column) et sa suivante. Les deux autres fonctions quant
elles, renvoient la valeur par dfaut des espacements, c'est--dire la valeur qui sera
utilis au prochain ajout d'un widget.
VII-B-4. Exemple
Nous allons utiliser le mme exemple que dans le chapitre sur les GtkBox, pour bien
montrer la diffrence au niveau du code.
Slectionnez
#include <stdlib.h>
#include <gtk/gtk.h>
gtk_init(&argc, &argv);
pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(pWindow), 320, 200);
gtk_window_set_title(GTK_WINDOW(pWindow), "Les GtkTable");
g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_widget_show_all(pWindow);
gtk_main();
return EXIT_SUCCESS;
}
Rsultat :
Slectionnez
void gtk_table_set_homogeneous( GtkTable *table, gboolean homogeneous );
Entre(s) :
table : la GtkTable.
homogeneous : TRUE si l'on veut que table soit homogne, FALSE sinon.
Sortie : rien.
Slectionnez
gboolean gtk_table_get_homogeneous(GtkTable *table);
Entre(s) :
table : la GtkTable.
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre
convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2013 developpez. Aucune reproduction, mme partielle,
ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images,
etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans
de prison et jusqu' 300 000 de dommages et intrts.