功能

GObjectsignal_handlers_disconnect_matched

声明 [src]

guint
g_signal_handlers_disconnect_matched (
  GObject* instance,
  GSignalMatchType mask,
  guint signal_id,
  GQuark detail,
  GClosure* closure,
  gpointer func,
  gpointer data
)

说明 [src]

断开与实例上匹配某一特定选择标准的所有处理程序。

条件掩码以 GSignalMatchType 标志的组合方式传递,条件值以自变量的方式传递。处理程序必须与 mask 中设置的所有标志匹配(即匹配为合取)。

必须传递至少一个 G_SIGNAL_MATCH_IDG_SIGNAL_MATCH_CLOSUREG_SIGNAL_MATCH_FUNCG_SIGNAL_MATCH_DATA 匹配标志以实现匹配。如果没有找到处理程序,则返回 0,否则返回断开连接的处理程序数。

对于 G_SIGNAL_MATCH_ID 的支持已在 GLib 2.78 中添加。

参数

instance

类型: GObject

要从中删除处理程序的实例。

数据归调用该函数的调用方所有。
mask

类型: GSignalMatchType

掩码指示处理程序必须匹配哪些 signal_iddetailclosurefunc 和/或 data

signal_id

类型: guint

处理程序必须连接到的信号。

detail

类型: GQuark

处理程序必须连接到的信号详情。

closure

类型: GClosure

处理程序将调用的闭包。

自变量可以为 NULL
数据归调用该函数的调用方所有。
func

类型: gpointer

处理程序的 C 闭包回调(对非 C 闭包无用)。

自变量可以为 NULL
数据归调用该函数的调用方所有。
data

类型: gpointer

处理程序闭包的闭包数据。

自变量可以为 NULL
数据归调用该函数的调用方所有。

返回值

类型: guint

匹配的处理程序数。