事件处理
//设置控件捕获相应的事件
void gtk_widget_set_events (GtkWidget *widget, gint events);
GDK_BUTTON_PRESS_MASK:鼠标点击
GDK_BUTTON_RELEASE_MASK:鼠标释放
GDK_BUTTON_MOTION_MASK:鼠标移动
GDK_KEY_PRESS_MASK:键盘按下
GDK_ENTER_NOTIFY_MASK:进入控件区域
//鼠标事件
// 主窗口需要手动捕获鼠标事件
//触发 鼠标点击事件的信号: button_press_event
//触发 鼠标释放事件的信号: button_release_event
//回调函数:
void callback (GtkWidget *widget, GdkEventButton *event, gpointer data);
event->x,event->y: 得到点击坐标值
event->button: 鼠标哪个键按下
//触发 鼠标移动事件的信号: motion_notify_event
//回调函数:
void callback (GtkWidget *widget, GdkEventMotion *event, gpointer data);
event->x,event->y: 得到移动的坐标值
//键盘事件
//主窗口能够自动捕获键盘事件,其中的键值定义在/usr/include/gtk-2.0/gdk/gdkkeysyms.h文件里,如果窗口内有多个控件,一般是顶层容器的key_press_event起作用
//触发 键盘按下事件的信号: key_press_event
//触发 键盘释放事件的信号: key_release_event
//回调函数:
void callback (GtkWidget *widget, GdkEventKey *event, gpointer data);
event->keyval: 获取按下(释放)键盘键值
//属性改变事件
//当窗口初始化,被移动或拉伸时,自动触发
//触发 属性改变事件的信号: configure_event
//回调函数:
void callback (GtkWidget *widget, GdkEventConfigure *event, gpointer data);
event->x,event->y: 窗口的起点坐标
event->width,event->height: 窗口的大小
//事件盒子GtkEventBox
//有些控件,不响应GDK事件,GTK+通过事件盒子给控件提供一个GDK窗口来捕获事件
//创建事件盒子
GtkWidget* gtk_event_box_new (void);
//添加控件到事件盒子里
void gtk_container_add (GtkContainer *container, GtkWidget *widget);
//设置控件捕获相应的事件
void gtk_widget_set_events (GtkWidget *widget, gint events);
GDK_BUTTON_PRESS_MASK:鼠标点击
GDK_BUTTON_RELEASE_MASK:鼠标释放
GDK_BUTTON_MOTION_MASK:鼠标移动
GDK_KEY_PRESS_MASK:键盘按下
GDK_ENTER_NOTIFY_MASK:进入控件区域
//鼠标事件
// 主窗口需要手动捕获鼠标事件
//触发 鼠标点击事件的信号: button_press_event
//触发 鼠标释放事件的信号: button_release_event
//回调函数:
void callback (GtkWidget *widget, GdkEventButton *event, gpointer data);
event->x,event->y: 得到点击坐标值
event->button: 鼠标哪个键按下
//触发 鼠标移动事件的信号: motion_notify_event
//回调函数:
void callback (GtkWidget *widget, GdkEventMotion *event, gpointer data);
event->x,event->y: 得到移动的坐标值
//键盘事件
//主窗口能够自动捕获键盘事件,其中的键值定义在/usr/include/gtk-2.0/gdk/gdkkeysyms.h文件里,如果窗口内有多个控件,一般是顶层容器的key_press_event起作用
//触发 键盘按下事件的信号: key_press_event
//触发 键盘释放事件的信号: key_release_event
//回调函数:
void callback (GtkWidget *widget, GdkEventKey *event, gpointer data);
event->keyval: 获取按下(释放)键盘键值
//属性改变事件
//当窗口初始化,被移动或拉伸时,自动触发
//触发 属性改变事件的信号: configure_event
//回调函数:
void callback (GtkWidget *widget, GdkEventConfigure *event, gpointer data);
event->x,event->y: 窗口的起点坐标
event->width,event->height: 窗口的大小
//事件盒子GtkEventBox
//有些控件,不响应GDK事件,GTK+通过事件盒子给控件提供一个GDK窗口来捕获事件
//创建事件盒子
GtkWidget* gtk_event_box_new (void);
//添加控件到事件盒子里
void gtk_container_add (GtkContainer *container, GtkWidget *widget);