方法

GObjectObjectbind_property

since: 2.26

声明 [src]

GBinding*
g_object_bind_property (
  GObject* source,
  const gchar* source_property,
  GObject* target,
  const gchar* target_property,
  GBindingFlags flags
)

描述 [src]

sourcesource_propertytargettarget_property之间创建了一个绑定。

每当更改source_property时,将使用相同值更新target_property。例如:

  g_object_bind_property (action, "active", widget, "sensitive", 0);

这将导致动作GObject实例的“active”属性的值与小部件实例的“sensitive”属性更新为相同的值。

如果flags包含G_BINDING_BIDIRECTIONAL,则绑定将是双向的:如果target上的target_property更改,则source上的source_property也将被更新。

当任一sourcetarget实例最终确定时,将自动删除绑定。要删除绑定,而不影响sourcetarget,您只需调用返回的GBinding实例上的g_object_unref()即可。

调用 g_object_unref() 来移除绑定只能在绑定、sourcetarget 只被一个线程使用,并且二者都存在于绑定的生命周期内时进行。特别是,如果绑定、sourcetarget 可以从不同的线程中消亡,那么依赖这一做法是不安全的。请保留绑定的一个引用,并使用 g_binding_unbind() 来确保安全。

GObject 可以有多个绑定。

自从:2.26

参数

source_property

类型: const gchar*

要绑定的 source 属性。

数据由方法的调用者拥有。
值是一个以空字符终止的 UTF-8 字符串。
target

类型: GObject

目标 GObject

数据由方法的调用者拥有。
target_property

类型: const gchar*

要绑定的 target 属性。

数据由方法的调用者拥有。
值是一个以空字符终止的 UTF-8 字符串。
flags

类型: GBindingFlags

传递给 GBinding 的标记。

返回值

类型: GBinding

代表两个 GObject 实例之间绑定关系的 GBinding 实例。当 GBinding 引用计数达到零时,将释放绑定。

返回的数据由实例拥有。