当前位置: 技术问答>linux和unix
如何让GTK+ 的控件响应 mouse move事件?
来源: 互联网 发布时间:2016-04-02
本文导语: 我使用的是Glade,Gtk的控件的signal中没有mouse move,是否可以加入呢?有没有例子可以看?谢谢了。 | //注册drawingarea的鼠标移动事件 zoom_signal = g_signal_connect(wbus->drawingarea,"motion-notify-event", (G...
我使用的是Glade,Gtk的控件的signal中没有mouse move,是否可以加入呢?有没有例子可以看?谢谢了。
|
//注册drawingarea的鼠标移动事件
zoom_signal = g_signal_connect(wbus->drawingarea,"motion-notify-event",
(GCallback)zoom_drawingarea_mouse_move_handler,NULL);
//当局部放大的时候drawingarea的鼠标移动事件处理函数
static gboolean zoom_drawingarea_mouse_move_handler(GtkWidget *widget,GdkEventMotion *event,gpointer data)
{
zoom_x = event->x;
zoom_y = event->y;
if(zooming_in_freezed()){ //冻结状态下的局部放大
wbuscanner_draw_zoom_area();//局部放大
}
return FALSE;
}
zoom_signal = g_signal_connect(wbus->drawingarea,"motion-notify-event",
(GCallback)zoom_drawingarea_mouse_move_handler,NULL);
//当局部放大的时候drawingarea的鼠标移动事件处理函数
static gboolean zoom_drawingarea_mouse_move_handler(GtkWidget *widget,GdkEventMotion *event,gpointer data)
{
zoom_x = event->x;
zoom_y = event->y;
if(zooming_in_freezed()){ //冻结状态下的局部放大
wbuscanner_draw_zoom_area();//局部放大
}
return FALSE;
}
|
对于所有的GtkWidget都
可以使用
"leave-notify-event"
gboolean user_function (GtkWidget *widget,
GdkEventCrossing *event,
gpointer user_data);