|
一个gtk编程问题,请大家帮门,
通过单击按钮来改变标签的文本。编译没问题,但运行时没反应..
#include <gtk\gtk.h>
void hello( GtkWidget *widget,gpointer data )
{
g_print ("Hello World\n");
}
void mychange(GtkWidget *label1)
{ char mystr[10]="welcome";
gtk_label_set_text ( GTK_LABEL (label1) , mystr );
}
gint delete_event( GtkWidget *widget,GdkEvent *event,gpointer data )
{
g_print ("delete event occurred\n");
return TRUE;
}
void destroy( GtkWidget *widget,
gpointer data )
{
gtk_main_quit ();
}
int main( int argc,
char *argv[] )
{
GtkWidget *window;
GtkWidget *button;
GtkWidget *label1;
GtkWidget *box;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (G_OBJECT (window), "delete_event",G_CALLBACK (delete_event), NULL);
g_signal_connect (G_OBJECT (window), "destroy",G_CALLBACK (destroy), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
box = gtk_hbox_new (TRUE, 1);
label1 = gtk_label_new ("Hello!");
button = gtk_button_new_with_label ("change");
g_signal_connect (G_OBJECT (button), "clicked",G_CALLBACK (mychange), NULL);
/* g_signal_connect_swapped (G_OBJECT (button), "clicked",G_CALLBACK (gtk_widget_destroy),window); */
gtk_container_add (GTK_CONTAINER (window), box);
gtk_box_pack_start (GTK_BOX (box), button, TRUE, TRUE, 1);
gtk_box_pack_start (GTK_BOX (box), label1, TRUE, TRUE, 1);
gtk_widget_show (box);
gtk_widget_show (button);
gtk_widget_show (label1);
gtk_widget_show (window);
gtk_main ();
return 0;
}
|
|