GTK常用接口——事件处理

来源:互联网 发布:二维码生成软件 编辑:程序博客网 时间:2024/05/16 00:42
事件处理
//设置控件捕获相应的事件
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);
原创粉丝点击