接口
GtkBuildable
描述 [源代码]
interface Gtk.Buildable : GObject.Object
GtkBuildable
允许对象扩展和自定义它们从 ui 文件中的反序列化。
该接口包括用于设置对象名称和属性、解析自定义标签和构造子对象的方法。
GtkBuildable
接口由所有构件小工具和许多 GTK 提供的非构件小工具对象实现。此接口的主要用户是 GtkBuilder
。应用程序几乎不需要直接调用其中任何函数。
只有当一个对象需要扩展 GtkBuilder
XML 格式或在反序列化时运行任何额外例程时,它才需要实现此接口。
先决条件
要实现 Buildable,你的类型必须继承自GObject
。
实现
- GtkAboutDialog
- GtkActionBar
- GtkAnyFilter
- GtkAppChooserButton
- GtkAppChooserDialog
- GtkAppChooserWidget
- GtkApplicationWindow
- GtkAspectFrame
- GtkAssistant
- GtkBox
- GtkButton
- GtkCalendar
- GtkCellArea
- GtkCellAreaBox
- GtkCellView
- GtkCenterBox
- GtkCheckButton
- GtkColorButton
- GtkColorChooserDialog
- GtkColorChooserWidget
- GtkColorDialogButton
- GtkColumnView
- GtkComboBox
- GtkComboBoxText
- GtkConstraintLayout
- GtkDialog
- GtkDragIcon
- GtkDrawingArea
- GtkDropDown
- GtkEditableLabel
- GtkEmojiChooser
- GtkEntry
- GtkEntryCompletion
- GtkEveryFilter
- GtkExpander
- GtkFileChooserDialog
- GtkFileChooserWidget
- GtkFileFilter
- GtkFixed
- GtkFlowBox
- GtkFlowBoxChild
- GtkFontButton
- GtkFontChooserDialog
- GtkFontChooserWidget
- GtkFontDialogButton
- GtkFrame
- GtkGLArea
- GtkGraphicsOffload
- GtkGrid
- GtkGridView
- GtkHeaderBar
- GtkIconView
- GtkImage
- GtkInfoBar
- GtkInscription
- GtkLabel
- GtkLevelBar
- GtkLinkButton
- GtkListBase
- GtkListBox
- GtkListBoxRow
- GtkListStore
- GtkListView
- GtkLockButton
- GtkMediaControls
- GtkMenuButton
- GtkMessageDialog
- GtkMultiFilter
- GtkMultiSorter
- GtkNotebook
- GtkOverlay
- GtkPageSetupUnixDialog
- GtkPaned
- GtkPasswordEntry
- GtkPicture
- GtkPopover
- GtkPopoverMenu
- GtkPopoverMenuBar
- GtkPrintUnixDialog
- GtkProgressBar
- GtkRange
- GtkRevealer
- GtkScale
- GtkScaleButton
- GtkScrollbar
- GtkScrolledWindow
- GtkSearchBar
- GtkSearchEntry
- GtkSeparator
- GtkShortcutController
- GtkShortcutLabel
- GtkShortcutsGroup
- GtkShortcutsSection
- GtkShortcutsShortcut
- GtkShortcutsWindow
- GtkSizeGroup
- GtkSpinButton
- GtkSpinner
- GtkStack
- GtkStackSidebar
- GtkStackSwitcher
- GtkStatusbar
- GtkStringList
- GtkSwitch
- GtkText
- GtkTextTagTable
- GtkTextView
- GtkToggleButton
- GtkTreeExpander
- GtkTreeStore
- GtkTreeView
- GtkTreeViewColumn
- GtkVideo
- GtkViewport
- GtkVolumeButton
- GtkWidget
- GtkWindow
- GtkWindowControls
- GtkWindowHandle
接口结构
struct GtkBuildableIface {
GTypeInterface g_iface;
void (* set_id) (
GtkBuildable* buildable,
const char* id
);
const char* (* get_id) (
GtkBuildable* buildable
);
void (* add_child) (
GtkBuildable* buildable,
GtkBuilder* builder,
GObject* child,
const char* type
);
void (* set_buildable_property) (
GtkBuildable* buildable,
GtkBuilder* builder,
const char* name,
const GValue* value
);
GObject* (* construct_child) (
GtkBuildable* buildable,
GtkBuilder* builder,
const char* name
);
gboolean (* custom_tag_start) (
GtkBuildable* buildable,
GtkBuilder* builder,
GObject* child,
const char* tagname,
GtkBuildableParser* parser,
gpointer* data
);
void (* custom_tag_end) (
GtkBuildable* buildable,
GtkBuilder* builder,
GObject* child,
const char* tagname,
gpointer data
);
void (* custom_finished) (
GtkBuildable* buildable,
GtkBuilder* builder,
GObject* child,
const char* tagname,
gpointer data
);
void (* parser_finished) (
GtkBuildable* buildable,
GtkBuilder* builder
);
GObject* (* get_internal_child) (
GtkBuildable* buildable,
GtkBuilder* builder,
const char* childname
);
}
GtkBuildableIface
接口包含必要的用于允许 GtkBuilder
从 GtkBuilder
UI 定义构造一个对象的方法。
接口成员
g_iface |
|
父类。 |
|
set_id |
|
存储在 |
|
get_id |
|
对应于 |
|
add_child |
|
添加子对象。 |
|
set_buildable_property |
|
设置一个可构建对象的属性。通常不需要实现此方法,默认使用 |
|
construct_child |
|
构造一个子构建元素,该元素已在 UI 定义中指定为“构造函数”。可用于引用在 |
|
custom_tag_start |
|
如果构建元素需要解析 |
|
custom_tag_end |
|
对构建元素处理的每个自定义元素的结束标签调用(参见 |
|
custom_finished |
|
当构建器完成解析 UI 定义时,对构建元素处理的每个自定义标签调用(参见 |
|
parser_finished |
|
当构建器完成解析 UI 定义时调用。通常不需要实现此方法,除非你需要执行特殊的清理操作。 |
|
get_internal_child |
|
返回可构建项目的内部子项。 |
虚拟方法
Gtk.Buildable.construct_child
构造一个子构建元素,该元素已在 UI 定义中指定为“构造函数”。可用于引用在 <ui>
标签中创建的小部件,该标签位于常规 GtkBuilder UI 定义层次之外。构造的对象引用返回并归调用方所有。
Gtk.Buildable.parser_finished
当构建器完成解析 UI 定义时调用。通常不需要实现此方法,除非你需要执行特殊的清理操作。GtkWindow
设置 GtkWidget:visible
属性。
Gtk.Buildable.set_buildable_property
设置可构建项目对象的属性。通常不需要实现此项,默认情况下使用 g_object_set_property()
。GtkWindow
实现此项以推迟显示自身(即设置 GtkWidget:visible
属性),直到创建整个界面。
Gtk.Buildable.set_id
存储在 GtkBuilder
UI 定义中给出的 id 属性。GtkWidget
以对象数据存储名称。如果你的对象有一些关于“ID”的概念,并且将 XML id 属性映射到它是有意义的,实现此方法。