[gtk] signal handle
2009-02-14 23:25:47| 分类:
gui_X
| 标签:
|举报
|字号大中小 订阅
对于点[x]按钮关闭窗口,点了一个 button,gtk中都会转换为起自己的 signal 反馈给 app。对于 signal handler,标准的声明:
static gboolean handler(GtkWidget *, ..., gpointer data);
不同的 handler,中间 ... 的内容不同。
"delete_event" 就是在点[x]按钮时,发送的信号。
=============================
#include <gtk/gtk.h>
static void destroy(GtkWidget*, gpointer);
static gboolean delete_event(GtkWidget*, GdkEvent*, gpointer);
int
main(int argc, char *argv[])
{
GtkWidget *window, *label;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "Hello world");
gtk_container_set_border_width(GTK_CONTAINER(window), 50);
gtk_widget_set_size_request(window, 200, 100);
g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(destroy), NULL);
g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(delete_event), NULL);
label = gtk_label_new("Hello World Too!");
gtk_label_set_selectable(GTK_LABEL(label), FALSE);
gtk_container_add(GTK_CONTAINER(window), label);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
static void
destroy(GtkWidget *window, gpointer data)
{
gtk_main_quit();
}
static gboolean
delete_event(GtkWidget *window, GdkEvent *event, gpointer data)
{
return FALSE;
}
评论这张
转发至微博
转发至微博
评论