函数宏

GMTsignal_connect_swapped

声明 [源码]

#define g_signal_connect_swapped (
  instance,
  detailed_signal,
  c_handler,
  data
)

描述 [源码]

将一个 GCallback 函数连接到特定对象的信号。

在调用处理器时,将交换发出信号的实例和 data。当要调用现存的函数仅对 data 进行操作,而不是对 instance:交换参数避免了编写包装函数的需要。

例如,这允许更短的代码

g_signal_connect_swapped (button, "clicked",
                          (GCallback) gtk_widget_hide, other_widget);

而不是繁杂的

static void
button_clicked_cb (GtkButton *button, GtkWidget *other_widget)
{
    gtk_widget_hide (other_widget);
}

...

g_signal_connect (button, "clicked",
                  (GCallback) button_clicked_cb, other_widget);

此函数不会失败。如果给定的信号名不存在,则发出严重警告。当在 detailed_signal 中指定时,不会对 'detail' 字符串执行任何验证,除了非空检查。

有关更多详细信息,请参阅 信号文档

此函数对语言绑定不可直接访问。

参数

instance

类型: -

要连接的实例。

detailed_signal

类型: -

形式为“signal-name::detail”的字符串。

c_handler

类型: -

要连接的 GCallback

data

类型: -

传递给 c_handler 调用的数据。