聘我网

新概念招聘3.0

g_signal_connect_swapped的作用是什么?

vote up0vote downstar
`g_signal_connect_swapped(instance, detailed_signal, c_handler, data);`

connects a GCallback function to a signal for a particular object. The instance on which the signal is emitted and data will be swapped when calling the handler.

不大理解上面讲的,是说instance将指向*data,而data将指向*instance吗?

如果是,这样做有什么好处?

 

1 个答复

vote up0vote downcheck

好处是可以实现下面的trick

g_signal_connect_swapped(button, 'clicked', G_CALLBACK(gtk_widget_hide), textview);

等效于:

static void
on_button_clicked(GtkButton *button, GtkWidget *textview)
{
    gtk_widget_hide(textview);
}
g_signal_connect(button, 'clicked', G_CALLBACK(on_button_clicked), textview);
链接

您的回答





不是您要找的问题? 浏览其他含有标签 的问题或者 自己问个.