方法
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]
在source
的source_property
和target
的target_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
也将被更新。
当任一source
或target
实例最终确定时,将自动删除绑定。要删除绑定,而不影响source
和target
,您只需调用返回的GBinding
实例上的g_object_unref()
即可。
调用 g_object_unref()
来移除绑定只能在绑定、source
和 target
只被一个线程使用,并且二者都存在于绑定的生命周期内时进行。特别是,如果绑定、source
或 target
可以从不同的线程中消亡,那么依赖这一做法是不安全的。请保留绑定的一个引用,并使用 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
引用计数达到零时,将释放绑定。
返回的数据由实例拥有。 |