方法

GObjectObjectbind_property_full

自2.26版本以来

声明 [src]

GBinding*
g_object_bind_property_full (
  GObject* source,
  const gchar* source_property,
  GObject* target,
  const gchar* target_property,
  GBindingFlags flags,
  GBindingTransformFunc transform_to,
  GBindingTransformFunc transform_from,
  gpointer user_data,
  GDestroyNotify notify
)

描述 [src]

g_object_bind_property()的完整版本。

在源对象上的source_property与目标对象上的target_property之间创建一个绑定,允许您设置绑定所使用的转换函数。

如果flags包含G_BINDING_BIDIRECTIONAL,则绑定将是双向的:如果目标对象上的target_property发生变化,则源对象上的source_property也将更新。在双向绑定的情况下,仅使用transform_from函数,否则将被忽略。

当源或目标实例被最终化时,绑定将自动删除。这将释放对GBinding实例的引用;如果您想保持对GBinding实例的引用,则需要保留对它的引用。

要删除绑定,请调用g_binding_unbind()。

一个 GObject 可以有多个绑定。

相同 user_data 参数将用于 transform_totransform_from 转换函数;当绑定被移除时,notify 函数将被调用来一次。如果您需要为每个转换函数使用不同的数据,请改用 g_object_bind_property_with_closures()

自 2.26 版本起可用。

此方法的实现由语言绑定中的 g_object_bind_property_with_closures() 提供。

参数

source_property

类型: const gchar*

要绑定的 source 上的属性。

数据由方法的调用者所有。
值是一个以 NUL 结尾的 UTF-8 字符串。
target

类型: GObject

目标 GObject

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

类型: const gchar*

要绑定的 target 上的属性。

数据由方法的调用者所有。
值是一个以 NUL 结尾的 UTF-8 字符串。
flags

类型: GBindingFlags

传递给 GBinding 的标志。

transform_to

类型: GBindingTransformFunc

sourcetarget 的转换函数,或使用默认值时为 NULL

参数可以是 NULL
transform_from

类型: GBindingTransformFunc

targetsource 的转换函数,或使用默认值时为 NULL

参数可以是 NULL
user_data

类型: gpointer

传递到转换函数的自定义数据,或 NULL

参数可以是 NULL
数据由方法的调用者所有。
notify

类型: GDestroyNotify

当处理绑定以释放转换函数使用的资源时调用的函数,如果不需要,则为 NULL

参数可以是 NULL

返回值

类型: GBinding

表示两个 GObject 实例之间绑定的 GBinding 实例。每次 GBinding 引用计数达到零时,都会释放绑定。

返回的数据由实例所有。