函数
GObjectsignal_new_class_handler
自 2.18 起
声明 [src]
guint
g_signal_new_class_handler (
const gchar* signal_name,
GType itype,
GSignalFlags signal_flags,
GCallback class_handler,
GSignalAccumulator accumulator,
gpointer accu_data,
GSignalCMarshaller c_marshaller,
GType return_type,
guint n_params,
...
)
描述 [src]
创建一个新信号。(通常在类初始化程序中完成此操作。)
此函数是 g_signal_new()
的变体,它使用 C 回调函数而不是类的偏移量作为信号的类处理程序。此函数不需要在对象定义的类结构中公开函数指针,而是直接传递函数指针,并且可以通过 g_signal_override_class_closure()
或 g_signal_override_class_handler()
由派生类进行重写,并可以通过 g_signal_chain_from_overridden()
或 g_signal_chain_from_overridden_handler() 进行链接。
有关信号名称的信息,请参阅 g_signal_new()
。
如果 c_marshaller 为 NULL
,g_cclosure_marshal_generic()
将用作此信号的编组器。
自 2.18 起提供
此函数不直接提供给语言绑定。
参数
signal_name
-
类型:
const gchar*
信号的名称。
数据由函数的调用方所有。 值为以 NUL 结尾的 UTF-8 字符串。 itype
-
类型:
GType
此信号所属于的类型。它也将属于派生自此类型的类型。
signal_flags
-
类型:
GSignalFlags
GSignalFlags
的组合,指定调用默认处理程序的详细信息。您至少应指定G_SIGNAL_RUN_FIRST
或G_SIGNAL_RUN_LAST
。 class_handler
-
类型:
GCallback
充当此信号的类实现的
GCallback
。用于以通用方式调用类方法。传递NULL
表示不将类方法与此信号关联。该参数可以为 NULL
。 accumulator
-
此信号的累加器;可以为
NULL
。该参数可以为 NULL
。 accu_data
-
类型:
gpointer
accumulator
的用户数据。该参数可以为 NULL
。数据由函数的调用方所有。 c_marshaller
-
将参数值数组转化为信号发射到 C 语言回调函数调用或
NULL
的函数。该参数可以为 NULL
。 return_type
-
类型:
GType
返回值类型,或对于没有返回值的信号而言为
G_TYPE_NONE
。 n_params
-
类型:
guint
要遵循的参数类型的数量。
...
-
类型:
类型的列表,每个参数一个类型。