GTK常用接口——事件处理

事件处理
//设置控件捕获相应的事件
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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值