GObjectSignalGroup

自 2.72 版本起

描述 [源代码]

final class GObject.SignalGroup : GObject.Object
{
  /* No available fields */
}

GSignalGroup 管理了 GObject 上的多个信号。

GSignalGroup 简化了将多个信号连接到 GObject 作为一组的过程。因此,没有 API 可以从该组断开信号。

特别是,这允许您

  • 更改目标实例,这将自动断开与旧实例的信号连接并连接到新实例。
  • 以一组形式阻塞和解除阻塞信号
  • 确保阻塞状态在不同目标实例之间传递。

您可能希望使用这种结构的地方之一是与 GtkTextViewGtkTextBuffer 一起使用。通常情况下,您需要从 GtkTextView 子类连接到许多 GtkTextBuffer 信号。这允许您在实例构建期间创建信号组,简单地将 GtkTextView:buffer 属性绑定到 GSignalGroup:target,并将所有所需的信号连接在一起。当 GtkTextView:buffer 属性更改时,所有信号都将正确转换。

自 2.72 版本起可用

祖先

构造函数

g_signal_group_new

target_type 的目标实例创建一个新的 GSignalGroup

自 2.72 版本起

实例方法

g_signal_group_block

将所有由 self 管理的信号处理程序阻塞,以便它们在信号发射期间不会调用。必须以与阻塞次数相同的次数解除阻塞才能再次启用。

自 2.72 版本起

g_signal_group_connect

c_handler 连接到 self 的目标实例上的 detailed_signal 信号。

自 2.72 版本起

g_signal_group_connect_after

c_handler 连接到 self 的目标实例上的 detailed_signal 信号。

自 2.72 版本起

g_signal_group_connect_closure

closure 连接到 GSignalGroup:target 上的 detailed_signal 信号。

自 2.74 版本起

g_signal_group_connect_data

c_handler 连接到 self 的目标实例上的 detailed_signal 信号。

自 2.72 版本起

g_signal_group_connect_object

c_handler 连接到 GSignalGroup:target 上的 detailed_signal 信号。

自 2.72 版本起

g_signal_group_connect_swapped

c_handler 连接到 self 的目标实例上的 detailed_signal 信号。

自 2.72 版本起

g_signal_group_dup_target

获取连接信号时使用的目标实例。

自 2.72 版本起

g_signal_group_set_target

设置连接信号时使用的目标实例。任何使用 g_signal_group_connect_object() 或类似函数注册的信号都将连接到此对象。

自 2.72 版本起

g_signal_group_unblock

解锁由 self 管理的所有信号处理程序,以便在信号发出时重新调用。除非再次被阻止,否则它们将在信号发出的任何情况下重新调用。必须以与被阻止相同的次数解锁才能再次激活。

自 2.72 版本起

GObject 继承的方法(43)

有关方法完整列表,请参阅GObject 

属性

GObject.SignalGroup:target

连接信号时使用的目标实例。

自 2.72 版本起

GObject.SignalGroup:target-type

目标属性的 GType

自 2.72 版本起

信号

GObject.SignalGroup::bind

GSignalGroup:target 设置为新值(非 NULL)时发出此信号。这与在 target 上调用 GObject::notify 类似,但不会在 GSignalGroup:targetNULL 时发出,并且还允许在没有数据竞争的情况下接收 GObject

自 2.72 版本起

GObject.SignalGroup::unbind

self 的目标实例被设置为新的 GObject 时发出此信号。

自 2.72 版本起

GObject 继承的信号(1)
GObject::notify

当对象的某个属性通过 g_object_set_property(), g_object_set() 等等方法设置其值时,会在对象上发出通知信号。