Les boutons Cases à cocher

  1. Introduction
  2. 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 :

  1. GtkWidget *caseacoche1;//Pour la case à cocher 1  
  2. GtkWidget *caseacoche2;//Pour la case à cocher 2  

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 :
    1. 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);
    1. 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:
, cours langage C, GtkCheckButton, GtkRadioButton
Code C :

  1. #include<stdlib.h>  
  2. #include<gtk/gtk.h>  
  3.   
  4. int main(int argc, char *argv[])  
  5. {  
  6.     GtkWidget *mafenetre;  
  7.     GtkWidget *montableau;  
  8.     GtkWidget *caseacoche1;//declaration du bouton 1  
  9.     GtkWidget *caseacoche2;//Declaraction du bouton 2  
  10.   
  11.     gtk_init(&argc,&argv);  
  12.     mafenetre=gtk_window_new(GTK_WINDOW_TOPLEVEL);  
  13.     montableau=gtk_table_new(1,2,TRUE);  
  14.     caseacoche1= gtk_check_button_new_with_label("Case 1");// initialisation du bouton 1  
  15.     caseacoche2= gtk_radio_button_new_with_label(NULL, "Case 2");//initialisation du bouton 1  
  16.     gtk_container_add(GTK_CONTAINER(mafenetre), GTK_WIDGET(montableau));  
  17.     gtk_window_set_title(GTK_WINDOW(mafenetre), "Samomoi");  
  18.     gtk_window_set_position(GTK_WINDOW(mafenetre), GTK_WIN_POS_CENTER);  
  19.     gtk_window_set_default_size(GTK_WINDOW(mafenetre), 400, 100);  
  20.     gtk_window_set_icon_from_file(GTK_WINDOW(mafenetre), "icone.gif", NULL);  
  21.   
  22.      /* Affichage de deux boutons sur le tableau*/  
  23.          gtk_table_attach(GTK_TABLE(montableau), caseacoche1,  
  24.          0, 1, 0, 1,  
  25.         GTK_EXPAND | GTK_FILL, GTK_EXPAND,  
  26.         0, 0);  
  27.         gtk_table_attach(GTK_TABLE(montableau), caseacoche2,  
  28.         1, 2, 0, 1,  
  29.         GTK_EXPAND | GTK_FILL, GTK_EXPAND,  
  30.         0, 0);  
  31.   
  32.     gtk_widget_show_all(mafenetre);  
  33.     g_signal_connect(G_OBJECT(mafenetre), "destroy", G_CALLBACK(gtk_main_quit), NULL);  
  34.     gtk_main();  
  35.     return 0;  
  36.     }  



Une question? Cliquez ici pour la poser.

Retour sur le portail du langage C/C++