Interaction entre un Label et un Bouton
Description : Quand on clique sur le bouton « Cliquez ici», le texte du Label change.
Aperçu :
Avant le click de la souris
Après le click de la souris
Commande de compilation : si on a appelé le fichier 'programme.c',
on compile le tout en tapant la commande :
gcc programme.c -o programme `pkg-config --cflags --libs gtk+-2.0`
(le signe " ` " s'obtient avec la combinaison des touches AltGr+7).
On exécute avec ./programme.c
Code source :
#include <gtk/gtk.h> /* Declaration de la fonction */ void changer_texte(GtkWidget *BoutonCliquezMoi, GtkWidget *Label) { gtk_label_set_text( GTK_LABEL(Label), "Le monde va bien!"); } /* Programme principal */ int main( int argc, char *argv[] ) { /* Declaration des variables */ GtkWidget *fenetre; GtkWidget *boite; GtkWidget *label; GtkWidget *boutonCliquezMoi; /* Initialisation de la bibliotheque */ gtk_init (&argc, &argv); /* Creation des objets */ fenetre = gtk_window_new (GTK_WINDOW_TOPLEVEL); boite = gtk_vbox_new(FALSE, 5); label = gtk_label_new("Comment va le monde?"); boutonCliquezMoi = gtk_button_new_with_label("Cliquez ici"); /* Attachement des objets a la fenetre principale et a la boite */ gtk_container_add (GTK_CONTAINER (fenetre), boite); gtk_box_pack_start( GTK_BOX(boite), label, FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(boite), boutonCliquezMoi, FALSE, FALSE, 0); /******* CONNEXION DES SIGNAUX *******/ /* Termine l'application lorsque l'on ferme la fenetre */ g_signal_connect ( G_OBJECT (fenetre), "destroy", G_CALLBACK (gtk_main_quit), NULL ); /* Connexion du signal du bouton Cliquez Moi */ g_signal_connect ( G_OBJECT (boutonCliquezMoi), "clicked", G_CALLBACK (changer_texte), G_OBJECT(label) ); /* Affiche la fenetre */ gtk_widget_show_all (fenetre); /* Boucle principal */ gtk_main (); }