2013-02-02 27 views
1

在GObject的参考手册,它表示为一个函数:GTK/GObject的detailed_signal参数

g_signal_connect(instance, detailed_signal, c_handler, data) 

形式 detailed_signal字符串参数 “信号名::细节”是期望的。我最初的理解是,有预定义的信号细节可以通过。如果是这种情况,我可以在哪里找到这些列表?如果不是,那究竟是什么意思,因为手册没有那么明显。

回答

1

信号名称的::detail部分是可选的。如果一个信号需要一个细节参数,那么它会在信号的文档中这样说。否则,你可以忽略它。

我知道的唯一信号实际上使用了一个细节参数,notify信号GObject。没有详细信息的notify信号会在对象发生任何任何属性更改时触发,因此它相当无用。但是,如果连接到notify::visible信号,则只要对象的visible属性发生更改,它就会触发。

0

除非最近事情发生了很大变化,否则没有完整的正式的信号列表。预定义的信号完全取决于您正在使用的技术。

你可以做的是看你正在使用的GObject实例类的在线文档。例如,如果您使用的是GtkButton,则可以在线查找它并发现它发出六个信号(激活,点击,进入,离开,按下,释放)。 GtkButton是从GtkContainer派生而来的,它也发出了一些可能被GtkButton发送的记录信号。而GtkContainer是从GtkWidget派生而来的,它发出了许多可能由GtkButton发出的记录信号。

如果你找对象,还没有发出一种信号,你期待,你可能也看在该对象的源代码,因为有时物体发出的信号无证,