Chinaunix首页 | 论坛 | 博客
  • 博客访问: 112758
  • 博文数量: 32
  • 博客积分: 1470
  • 博客等级: 上尉
  • 技术积分: 375
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-13 21:27
文章分类

全部博文(32)

文章存档

2011年(5)

2010年(27)

我的朋友

分类:

2011-01-12 10:58:35

文件: gdk-html-2.22.1.tar.gz
大小: 364KB
下载: 下载

对GTK+的空间,要想产生一个鼠标双击的信号(事件),还要借助GDK啊……

如何捕获一个双击(double click)事件(event)(例如在一个列表控件中)? Tim Janik 在 gtk 邮件列表(gtk-list)上写道(稍做修改):

//定义一个信号处理函数:

gint signal_handler_event(GtkWidget *widget, GdkEventButton *event, gpointer func_data)
{
if (GTK_IS_LIST_ITEM(widget) && (event->type==GDK_2BUTTON_PRESS || event->type==GDK_3BUTTON_PRESS) )
{
printf("I feel %s clicked on button %d\n", event->type==GDK_2BUTTON_PRESS ? "double" : "triple", event->button);
}
return FALSE;
}
//将函数和你的控件连接:

{
/* list, list item init stuff */
 gtk_signal_connect(GTK_OBJECT(list_item), "button_press_event", GTK_SIGNAL_FUNC(signal_handler_event), NULL);
/* and/or */
gtk_signal_connect(GTK_OBJECT(list_item), "button_release_event", GTK_SIGNAL_FUNC(signal_handler_event), NULL);
/* something else */
}


Owen Taylor 写道: "注意:一个单击的信号将在之前被受到,如果你双击一个按钮,将会在之前收到一个单击("clicked")的 信号(任何的工具都是这样,因为电脑无法读懂你的思想.)
阅读(977) | 评论(0) | 转发(0) |
0

上一篇:原子操作

下一篇:GTK+ FAQ

给主人留下些什么吧!~~