Les boutons Cases à cocher
- Introduction
- Création d’une case à cocher
1. Introduction
Nous avons déjà vu comment créer un bouton normal avec GTK+, sur ce cours nous allons voir comment créer un
bouton un peu spécial. Il s’agit tout simplement d’une case à cocher. Le widget qui concerne les
cases à cocher est GtkToggleButton. Il est héritier direct de GtkButton.
Ici nous allons étudier deux sortes de cases à cocher. L’une utilise le widget GtkCheckButton
qui est un héritier direct de GtkToggleButton. L’autre utilise le widget GtkRadioButton
qui est un héritier direct de GtkCheckButton.
2. Création d’une case à cocher
Pour créer une case à cocher, on commence par créer un pointeur vers GtkWidget. Dans notre ça sera :
- GtkWidget *caseacoche1;
- GtkWidget *caseacoche2;
Ensuite on passe à l’initialisation :
- Pour le CheckButon, voici les syntaxes :
GtkWidget* gtk_check_button_new (void);
GtkWidget* gtk_check_button_new_with_label (const gchar *label);
GtkWidget* gtk_check_button_new_with_mnemonic(const gchar *label);
Dans notre cas, ça sera :
- caseacoche1= gtk_check_button_new_with_label("Case 1") ;
- Pour le bouton radio, voici les syntaxes :
GtkWidget* gtk_radio_button_new (GSList *group);
GtkWidget* gtk_radio_button_new_with_label (GSList *group, const gchar *label);
GtkWidget* gtk_radio_button_new_with_mnemonic(GSList *group, const gchar *label);
- caseacoche2= gtk_radio_button_new_with_label(NULL, "Case 2");
GtkDialog
NB : referez-vous aux boutons normaux pour la compréhension de l’initialisation.
Maintenant il ne reste qu’afficher nos fameuses cases à cocher. Et cela vous savez déjà le faire. Donc passons à
l’exemple pour mieux comprendre.
Voici une capture de ce que nous allons faire:

Code C :
- #include<stdlib.h>
- #include<gtk/gtk.h>
-
- int main(int argc, char *argv[])
- {
- GtkWidget *mafenetre;
- GtkWidget *montableau;
- GtkWidget *caseacoche1;
- GtkWidget *caseacoche2;
-
- gtk_init(&argc,&argv);
- mafenetre=gtk_window_new(GTK_WINDOW_TOPLEVEL);
- montableau=gtk_table_new(1,2,TRUE);
- caseacoche1= gtk_check_button_new_with_label("Case 1");
- caseacoche2= gtk_radio_button_new_with_label(NULL, "Case 2");
- gtk_container_add(GTK_CONTAINER(mafenetre), GTK_WIDGET(montableau));
- gtk_window_set_title(GTK_WINDOW(mafenetre), "Samomoi");
- gtk_window_set_position(GTK_WINDOW(mafenetre), GTK_WIN_POS_CENTER);
- gtk_window_set_default_size(GTK_WINDOW(mafenetre), 400, 100);
- gtk_window_set_icon_from_file(GTK_WINDOW(mafenetre), "icone.gif", NULL);
-
-
- gtk_table_attach(GTK_TABLE(montableau), caseacoche1,
- 0, 1, 0, 1,
- GTK_EXPAND | GTK_FILL, GTK_EXPAND,
- 0, 0);
- gtk_table_attach(GTK_TABLE(montableau), caseacoche2,
- 1, 2, 0, 1,
- GTK_EXPAND | GTK_FILL, GTK_EXPAND,
- 0, 0);
-
- gtk_widget_show_all(mafenetre);
- g_signal_connect(G_OBJECT(mafenetre), "destroy", G_CALLBACK(gtk_main_quit), NULL);
- gtk_main();
- return 0;
- }