您的位置:首页 > 其它

GTK常用接口——事件处理

2013-11-09 21:57 344 查看
事件处理

//设置控件捕获相应的事件

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: