📄 gtkbuilder.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"><title>GtkBuilder</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"><link rel="start" href="index.html" title="GTK+ Reference Manual"><link rel="up" href="Builder.html" title="Interface builder"><link rel="prev" href="gtk-gtkbuildable.html" title="GtkBuildable"><link rel="next" href="DeprecatedObjects.html" title="Deprecated"><meta name="generator" content="GTK-Doc V1.9 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="gtk.html" title="Part I. GTK+ Overview"><link rel="part" href="gtkbase.html" title="Part II. GTK+ Core Reference"><link rel="part" href="gtkobjects.html" title="Part III. GTK+ Widgets and Objects"><link rel="chapter" href="ch01.html" title="Object Hierarchy"><link rel="chapter" href="ch02.html" title="Widget Gallery"><link rel="chapter" href="WindowWidgets.html" title="Windows"><link rel="chapter" href="DisplayWidgets.html" title="Display Widgets"><link rel="chapter" href="ButtonWidgets.html" title="Buttons and Toggles"><link rel="chapter" href="NumericEntry.html" title="Numeric/Text Data Entry"><link rel="chapter" href="TextWidgetObjects.html" title="Multiline Text Editor"><link rel="chapter" href="TreeWidgetObjects.html" title="Tree, List and Icon Grid Widgets"><link rel="chapter" href="MenusAndCombos.html" title="Menus, Combo Box, Toolbar"><link rel="chapter" href="Actions.html" title="Action-based menus and toolbars"><link rel="chapter" href="SelectorWidgets.html" title="Selectors (File/Font/Color/Input Devices)"><link rel="chapter" href="LayoutContainers.html" title="Layout Containers"><link rel="chapter" href="Ornaments.html" title="Ornaments"><link rel="chapter" href="ScrollingWidgets.html" title="Scrolling"><link rel="chapter" href="Printing.html" title="Printing"><link rel="chapter" href="MiscObjects.html" title="Miscellaneous"><link rel="chapter" href="AbstractObjects.html" title="Abstract Base Classes"><link rel="chapter" href="PlugSocket.html" title="Cross-process Embedding"><link rel="chapter" href="SpecialObjects.html" title="Special-purpose features"><link rel="chapter" href="RecentDocuments.html" title="Recently Used Documents"><link rel="chapter" href="Builder.html" title="Interface builder"><link rel="chapter" href="DeprecatedObjects.html" title="Deprecated"><link rel="part" href="migrating.html" title="Part IV. Migrating from Previous Versions of GTK+"><link rel="chapter" href="gtk-migrating-checklist.html" title="Migration Checklist"><link rel="chapter" href="gtk-migrating-GtkFileChooser.html" title="Migrating from GtkFileSelection to GtkFileChooser"><link rel="chapter" href="gtk-migrating-GtkAction.html" title="Migrating from old menu and toolbar systems to GtkAction"><link rel="chapter" href="gtk-migrating-GtkComboBox.html" title="Migrating from GtkOptionMenu and GtkCombo to GtkComboBox and GtkComboBoxEntry"><link rel="chapter" href="gtk-migrating-GtkIconView.html" title="Migrating from GnomeIconList to GtkIconView"><link rel="chapter" href="gtk-migrating-GtkAboutDialog.html" title="Migrating from GnomeAbout to GtkAboutDialog"><link rel="chapter" href="gtk-migrating-GtkColorButton.html" title="Migrating from GnomeColorPicker to GtkColorButton"><link rel="chapter" href="gtk-migrating-GtkAssistant.html" title="Migrating from GnomeDruid to GtkAssistant"><link rel="chapter" href="gtk-migrating-GtkRecentChooser.html" title="Migrating from EggRecent to GtkRecentChooser"><link rel="chapter" href="gtk-migrating-GtkLinkButton.html" title="Migrating from GnomeHRef to GtkLinkButton"><link rel="chapter" href="gtk-migrating-GtkBuilder.html" title="Migrating from libglade to GtkBuilder"><link rel="chapter" href="gtk-migrating-tooltips.html" title="Migrating from GtkTooltips to GtkTooltip"><link rel="part" href="pt05.html" title="Part V. GTK+ Tools"><link rel="glossary" href="glossary.html" title="Glossary"><link rel="index" href="ix01.html" title="Index"><link rel="index" href="ix02.html" title="Index of deprecated symbols"><link rel="index" href="ix03.html" title="Index of new symbols in 2.2"><link rel="index" href="ix04.html" title="Index of new symbols in 2.4"><link rel="index" href="ix05.html" title="Index of new symbols in 2.6"><link rel="index" href="ix06.html" title="Index of new symbols in 2.8"><link rel="index" href="ix07.html" title="Index of new symbols in 2.10"><link rel="index" href="ix08.html" title="Index of new symbols in 2.12"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="gtk-gtkbuildable.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="Builder.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">GTK+ Reference Manual</th><td><a accesskey="n" href="DeprecatedObjects.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr><tr><td colspan="5" class="shortcuts"><nobr><a href="#id4455665" class="shortcut">Top</a>  |  <a href="#id4456265" class="shortcut">Description</a>  |  <a href="#id4456207" class="shortcut">Object Hierarchy</a>  |  <a href="#id4456231" class="shortcut">Properties</a></nobr></td></tr></table><div class="refentry" lang="en"><a name="GtkBuilder"></a><div class="titlepage"></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><a name="id4455665"></a><span class="refentrytitle">GtkBuilder</span></h2><p>GtkBuilder — Build an interface from an XML UI definition</p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">#include <gtk/gtk.h> <a class="link" href="GtkBuilder.html#GtkBuilder-struct">GtkBuilder</a>;void (<a class="link" href="GtkBuilder.html#GtkBuilderConnectFunc">*GtkBuilderConnectFunc</a>) (<a class="link" href="GtkBuilder.html" title="GtkBuilder">GtkBuilder</a> *builder, <ahref="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject">GObject</a> *object, const <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar">gchar</a> *signal_name, const <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar">gchar</a> *handler_name, <ahref="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject">GObject</a> *connect_object, <ahref="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#GConnectFlags">GConnectFlags</a> flags, <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer">gpointer</a> user_data);enum <a class="link" href="GtkBuilder.html#GtkBuilderError">GtkBuilderError</a>;<a class="link" href="GtkBuilder.html" title="GtkBuilder">GtkBuilder</a>* <a class="link" href="GtkBuilder.html#gtk-builder-new">gtk_builder_new</a> (void);<ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint">guint</a> <a class="link" href="GtkBuilder.html#gtk-builder-add-from-file">gtk_builder_add_from_file</a> (<a class="link" href="GtkBuilder.html" title="GtkBuilder">GtkBuilder</a> *builder, const <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar">gchar</a> *filename, <ahref="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError">GError</a> **error);<ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint">guint</a> <a class="link" href="GtkBuilder.html#gtk-builder-add-from-string">gtk_builder_add_from_string</a> (<a class="link" href="GtkBuilder.html" title="GtkBuilder">GtkBuilder</a> *builder, const <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar">gchar</a> *buffer, <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gsize">gsize</a> length, <ahref="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError">GError</a> **error);<ahref="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject">GObject</a>* <a class="link" href="GtkBuilder.html#gtk-builder-get-object">gtk_builder_get_object</a> (<a class="link" href="GtkBuilder.html" title="GtkBuilder">GtkBuilder</a> *builder, const <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar">gchar</a> *name);<ahref="/usr/share/gtk-doc/html/glib/glib-Singly-Linked-Lists.html#GSList">GSList</a>* <a class="link" href="GtkBuilder.html#gtk-builder-get-objects">gtk_builder_get_objects</a> (<a class="link" href="GtkBuilder.html" title="GtkBuilder">GtkBuilder</a> *builder);void <a class="link" href="GtkBuilder.html#gtk-builder-connect-signals">gtk_builder_connect_signals</a> (<a class="link" href="GtkBuilder.html" title="GtkBuilder">GtkBuilder</a> *builder, <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer">gpointer</a> user_data);void <a class="link" href="GtkBuilder.html#gtk-builder-connect-signals-full">gtk_builder_connect_signals_full</a> (<a class="link" href="GtkBuilder.html" title="GtkBuilder">GtkBuilder</a> *builder, <a class="link" href="GtkBuilder.html#GtkBuilderConnectFunc">GtkBuilderConnectFunc</a> func, <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer">gpointer</a> user_data);void <a class="link" href="GtkBuilder.html#gtk-builder-set-translation-domain">gtk_builder_set_translation_domain</a> (<a class="link" href="GtkBuilder.html" title="GtkBuilder">GtkBuilder</a> *builder, const <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar">gchar</a> *domain);const <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar">gchar</a>* <a class="link" href="GtkBuilder.html#gtk-builder-get-translation-domain">gtk_builder_get_translation_domain</a> (<a class="link" href="GtkBuilder.html" title="GtkBuilder">GtkBuilder</a> *builder);<ahref="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType">GType</a> <a class="link" href="GtkBuilder.html#gtk-builder-get-type-from-name">gtk_builder_get_type_from_name</a> (<a class="link" href="GtkBuilder.html" title="GtkBuilder">GtkBuilder</a> *builder, const char *type_name);<ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean">gboolean</a> <a class="link" href="GtkBuilder.html#gtk-builder-value-from-string">gtk_builder_value_from_string</a> (<a class="link" href="GtkBuilder.html" title="GtkBuilder">GtkBuilder</a> *builder, <ahref="/usr/share/gtk-doc/html/gobject/gobject-GParamSpec.html#GParamSpec">GParamSpec</a> *pspec, const <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar">gchar</a> *string, <ahref="/usr/share/gtk-doc/html/gobject/gobject-Generic-values.html#GValue">GValue</a> *value, <ahref="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError">GError</a> **error);<ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean">gboolean</a> <a class="link" href="GtkBuilder.html#gtk-builder-value-from-string-type">gtk_builder_value_from_string_type</a> (<a class="link" href="GtkBuilder.html" title="GtkBuilder">GtkBuilder</a> *builder, <ahref="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType">GType</a> type, const <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar">gchar</a> *string, <ahref="/usr/share/gtk-doc/html/gobject/gobject-Generic-values.html#GValue">GValue</a> *value, <ahref="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError">GError</a> **error);#define <a class="link" href="GtkBuilder.html#GTK-BUILDER-WARN-INVALID-CHILD-TYPE:CAPS">GTK_BUILDER_WARN_INVALID_CHILD_TYPE</a> (object, type)#define <a class="link" href="GtkBuilder.html#GTK-BUILDER-ERROR:CAPS">GTK_BUILDER_ERROR</a></pre></div><div class="refsect1" lang="en"><a name="id4456207"></a><h2>Object Hierarchy</h2><pre class="synopsis"> <ahref="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject">GObject</a> +----GtkBuilder</pre></div><div class="refsect1" lang="en"><a name="id4456231"></a><h2>Properties</h2><pre class="synopsis"> "<a class="link" href="GtkBuilder.html#GtkBuilder--translation-domain">translation-domain</a>" <ahref="/usr/share/gtk-doc/html/gobject/gobject-Standard-Parameter-and-Value-Types.html#gchararray">gchararray</a> : Read / Write</pre></div><div class="refsect1" lang="en"><a name="id4456265"></a><h2>Description</h2><p>A GtkBuilder is an auxiliary object that reads textual descriptionsof a user interface and instantiates the described objects. To pass a description to a GtkBuilder, call <a class="link" href="GtkBuilder.html#gtk-builder-add-from-file"><code class="function">gtk_builder_add_from_file()</code></a> or <a class="link" href="GtkBuilder.html#gtk-builder-add-from-string"><code class="function">gtk_builder_add_from_string()</code></a>. These functions can be called multipletimes; the builder merges the content of all descriptions. </p><p>A GtkBuilder holds a reference to all objects that it has constructedand drops these references when it is finalized. This finalization can cause the destruction of non-widget objects or widgets which are not contained in a toplevel window. For toplevel windows constructed by a builder, it is the responsibility of the user to call <a class="link" href="GtkWidget.html#gtk-widget-destroy"><code class="function">gtk_widget_destroy()</code></a> to get rid of them and all the widgets they contain.</p><p>The functions <a class="link" href="GtkBuilder.html#gtk-builder-get-object"><code class="function">gtk_builder_get_object()</code></a> and <a class="link" href="GtkBuilder.html#gtk-builder-get-objects"><code class="function">gtk_builder_get_objects()</code></a>can be used to access the widgets in the interface by the names assigned to them inside the UI description. Toplevel windows returned by thesefunctions will stay around until the user explicitly destroys themwith <a class="link" href="GtkWidget.html#gtk-widget-destroy"><code class="function">gtk_widget_destroy()</code></a>. Other widgets will either be part of a larger hierarchy constructed by the builder (in which case you shouldnot have to worry about their lifecycle), or without a parent, in which case they have to be added to some container to make use of them. Non-widget objects need to be reffed with <ahref="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#g-object-ref"><code class="function">g_object_ref()</code></a> to keep thembeyond the lifespan of the builder.</p><p>The function <a class="link" href="GtkBuilder.html#gtk-builder-connect-signals"><code class="function">gtk_builder_connect_signals()</code></a> and variants thereof can be used to connect handlers to the named signals in the description. </p><div class="refsect2" lang="en"><a name="BUILDER-UI"></a><h3>GtkBuilder UI Definitions</h3><p>GtkBuilder parses textual descriptions of user interfaces which are specified in an XML format which can be roughly described by the DTD below. We refer to these descriptions as <em class="firstterm">GtkBuilder UI definitions</em> or just<em class="firstterm">UI definitions</em> if the context is clear.Do not confuse GtkBuilder UI Definitions with <a class="link" href="GtkUIManager.html#XML-UI" title="UI Definitions">GtkUIManager UI Definitions</a>, which are more limited in scope. </p><p></p><pre class="programlisting"><!ELEMENT interface object* ><!ELEMENT object (property|signal|child|ANY)* ><!ELEMENT property PCDATA ><!ELEMENT signal EMPTY ><!ELEMENT child (object|ANY*) ><!ATTLIST interface domain #IMPLIED ><!ATTLIST object id #REQUIRED class #REQUIRED type-func #IMPLIED constructor #IMPLIED ><!ATTLIST property name #REQUIRED translatable #IMPLIED comments #IMPLIED context #IMPLIED ><!ATTLIST signal name #REQUIRED handler #REQUIRED after #IMPLIED swapped #IMPLIED object #IMPLIED last_modification_time #IMPLIED ><!ATTLIST child type #IMPLIED internal-child #IMPLIED ></pre><p></p><p>The toplevel element is <interface>.It optionally takes a "domain" attribute, which will make
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -