类方法

GtkWidgetClassbind_template_child_full

声明 [源]

void
gtk_widget_class_bind_template_child_full (
  GtkWidgetClass* widget_class,
  const char* name,
  gboolean internal_child,
  gssize struct_offset
)

描述 [源]

将类模板 XML 中声明的对象赋值到新构建实例的私有数据位置,或者可以由 gtk_widget_get_template_child() 获取。

该结构可以指向公共实例,此时应使用 G_STRUCT_OFFSET(WidgetType, member)struct_offset,或者在私有结构中,此时应使用 G_PRIVATE_OFFSET(WidgetType, member)

将自动持有对实例生命周期内的显式强引用,当实例上的 GObjectClass.dispose() 运行时将自动释放,如果指定了非零的 struct_offset,则实例公共或私有数据中的自动位置将被设置为 NULL。然而,您可以在类 GObjectClass.dispose() 首次运行时访问自动子指针,或者相反在 GtkWidget::destroy 中。

如果指定了 internal_child,则小部件类将自动实现 Gtk.BuildableIface.get_internal_child,因此无需手动实现。

包装宏 gtk_widget_class_bind_template_child()gtk_widget_class_bind_template_child_internal()gtk_widget_class_bind_template_child_private()gtk_widget_class_bind_template_child_internal_private() 可能更方便使用。

请注意,必须在调用 gtk_widget_class_set_template() 之后从复合小部件类的类初始化器中调用此方法。

参数

name

类型: const char*

ID 是在模板 XML 中定义的子代的 ID。

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

类型: gboolean

当在GtkBuilder XML中使用此类时,子对象是否应该作为“内部子对象”访问。

struct_offset

类型: gssize

自动设置子指针的结构体实例的公共或私有结构中的偏移量,或者0不分配指针。