方法
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 引用计数达到零时,都会释放绑定。
| 返回的数据由实例所有。 |