方法
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_to
和 transform_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
-
从
source
到target
的转换函数,或使用默认值时为NULL
。参数可以是 NULL
。 transform_from
-
从
target
到source
的转换函数,或使用默认值时为NULL
。参数可以是 NULL
。 user_data
-
类型:
gpointer
传递到转换函数的自定义数据,或
NULL
。参数可以是 NULL
。数据由方法的调用者所有。 notify
-
类型:
GDestroyNotify
当处理绑定以释放转换函数使用的资源时调用的函数,如果不需要,则为
NULL
。参数可以是 NULL
。
返回值
类型: GBinding
表示两个 GObject
实例之间绑定的 GBinding
实例。每次 GBinding
引用计数达到零时,都会释放绑定。
返回的数据由实例所有。 |