类方法
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()
之后从复合小部件类的类初始化器中调用此方法。