免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3163 | 回复: 3
打印 上一主题 下一主题

[GTK]关于widget的回调函数问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-02 19:16 |只看该作者 |倒序浏览
g_signal_connect中的回调函数的入参可以为一个or两个参数,也可以为三个参数。
想问的是在什么情况下or在哪些widget下,其对应得callback function需要传三个参数,两个参数或者一个参数?

查看了gnome的网站文档,只有widget的介绍,没有对每个widget对应的callback function做说明。

看到一些介绍:g_signal_connect中的callback function的入参为2个:GtkWidget*和GPointer,但看一些event box的对应的callback function时,又看到了3个参数,很奇怪!

请高人帮忙解答,不胜感激!

论坛徽章:
0
2 [报告]
发表于 2008-07-03 10:25 |只看该作者
建议看看GTK+ Reference Manual,各种widget中针对每一个signal都有一个函数原型参考;
比如:以下是摘自该手册的GtkButton的 "active" signal

The "activate" signal

void user_function (GtkButton *widget,
                    gpointer   user_data)      : Run First / Action


The ::activate signal on GtkButton is an action signal and emitting it causes the button to animate press then release. Applications should never connect to this signal, but use the "clicked" signal.

widget :
    the object which received the signal.

user_data :
    user data set when the signal handler was connected.

论坛徽章:
0
3 [报告]
发表于 2008-07-11 13:21 |只看该作者
callback原形楼上说的明白了。

多的那个参数是g_signal_emit时emit出来的,你只需要给那个user_data

论坛徽章:
0
4 [报告]
发表于 2008-07-11 20:05 |只看该作者
QT中也是这么连接的,信号/槽。

记得做Qtopia的时候,就是这样做。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP