Modification d'un label cliquable dans une même fenêtre
Bonsoir,
J'aimerais en fait modifier un "label cliquable" dans une même fenêtre après avoir cliqué dessus, mais j'ai des problèmes avec ma fonction callback .
Bien que le programme compile et que le label cliquable s'affiche, lorsque l'on clique dessus, il apparait une erreur d'exécution... Quelqu'un pourrait-il m'aider ?
Voici mon code ...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| #include <gtk/gtk.h>
void modifierlabel (GtkWidget *wid, gpointer data);
int main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *event_box;
GtkWidget *label;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Label");
g_signal_connect (G_OBJECT (window), "destroy",
G_CALLBACK (gtk_main_quit), NULL);
gtk_container_border_width (GTK_CONTAINER (window), 10);
/* Création d'un EventBox et ajout de celui-ci dans la fenêtre. */
event_box = gtk_event_box_new ();
gtk_container_add (GTK_CONTAINER(window), event_box);
gtk_widget_show (event_box);
/* Création d'un long label */
label = gtk_label_new ("Cliquez ici ");
gtk_container_add (GTK_CONTAINER (event_box), label);
gtk_widget_show (label);
/* Attachement d'une action à celui-ci. */
gtk_widget_set_events (event_box, GDK_BUTTON_PRESS_MASK);
gtk_signal_connect (GTK_OBJECT(event_box), "button_press_event",
GTK_SIGNAL_FUNC (modifierlabel), label);
gtk_widget_realize (event_box);
gdk_window_set_cursor (event_box->window, gdk_cursor_new (GDK_HAND2));
gtk_widget_show (window);
gtk_main ();
return 0;
}
void modifierlabel (GtkWidget *wid, gpointer data) {
GtkWidget *plabel = data;
gtk_label_set_label (GTK_LABEL(plabel), "C est ici");
gtk_widget_show (wid);
gtk_container_add (GTK_CONTAINER (wid), plabel);
gtk_widget_show (plabel); } |