- 论坛徽章:
- 0
|
当gtk_main_quit的时候,并不会产生delete_event事件,你可以点击关闭按钮(假如你的windows manager有关闭按钮的话)来触发这个事件。
另外,window的delete_event的回调参数第三项还是传进去的自定义参数值。
试试这样写:
<code>
#include <gtk/gtk.h>
gint
hello (GtkWidget * widget, gpointer data, gpointer data2)
{
g_print ("传递进来的消息是:%s\n", (gchar *) data);
gtk_main_quit ();
return FALSE;
}
gint
hello2 (GtkWidget * widget, gpointer data, gpointer data2)
{
g_print ("传递进来的消息是:%s\n", (gchar *) data2);
gtk_main_quit ();
return FALSE;
}
int
main (int argc, char *argv[])
{
GtkWidget *window_main;
GtkWidget *button_exit;
gtk_init (&argc, &argv);
window_main = gtk_window_new (GTK_WINDOW_TOPLEVEL);
button_exit = gtk_button_new_with_label ("Exit");
gtk_window_set_title (GTK_WINDOW (window_main), "Hello,Window!");
gtk_window_set_default_size (GTK_WINDOW (window_main), 200, 200);
gtk_container_add (GTK_CONTAINER (window_main), button_exit);
g_signal_connect (G_OBJECT (button_exit), "clicked", G_CALLBACK (hello),
"你点EXIT按钮关闭的!");
g_signal_connect (G_OBJECT (window_main), "delete_event",
G_CALLBACK (hello2), "你点的窗口按钮关闭的!");
gtk_widget_show_all (window_main);
gtk_main ();
return 0;
}
</code> |
|