Spec-Zone.ru › GTK 3.20

GtkBuilder

GtkBuilder — Построение интерфейса из XML-определения UI

Функции

void (*GtkBuilderConnectFunc) ()
GtkBuilder * gtk_builder_new ()
GtkBuilder * gtk_builder_new_from_file ()
GtkBuilder * gtk_builder_new_from_resource ()
GtkBuilder * gtk_builder_new_from_string ()
void gtk_builder_add_callback_symbol ()
void gtk_builder_add_callback_symbols ()
GCallback gtk_builder_lookup_callback_symbol ()
guint gtk_builder_add_from_file ()
guint gtk_builder_add_from_resource ()
guint gtk_builder_add_from_string ()
guint gtk_builder_add_objects_from_file ()
guint gtk_builder_add_objects_from_string ()
guint gtk_builder_add_objects_from_resource ()
guint gtk_builder_extend_with_template ()
GObject * gtk_builder_get_object ()
GSList * gtk_builder_get_objects ()
void gtk_builder_expose_object ()
void gtk_builder_connect_signals ()
void gtk_builder_connect_signals_full ()
void gtk_builder_set_translation_domain ()
const gchar * gtk_builder_get_translation_domain ()
void gtk_builder_set_application ()
GtkApplication * gtk_builder_get_application ()
GType gtk_builder_get_type_from_name ()
gboolean gtk_builder_value_from_string ()
gboolean gtk_builder_value_from_string_type ()
#define GTK_BUILDER_WARN_INVALID_CHILD_TYPE()

Свойства

gchar * translation-domain Чтение / Запись

Типы и значения

GtkBuilder
enum GtkBuilderError
#define GTK_BUILDER_ERROR

Иерархия объектов

    GObject
    ╰── GtkBuilder

Включаемые файлы

#include <gtk/gtk.h>

Описание

GtkBuilder — вспомогательный объект, который считывает текстовое описание пользовательского интерфейса и создаёт экземпляры описанных объектов. Чтобы создать GtkBuilder из описания пользовательского интерфейса, вызовите gtk_builder_new_from_file(), gtk_builder_new_from_resource() или gtk_builder_new_from_string().

В (необычном) случае, если вы хотите добавить описания пользовательского интерфейса из нескольких источников в один и тот же GtkBuilder, вы можете вызвать gtk_builder_new() для получения пустого билдера и заполнить его (несколькими) вызовами gtk_builder_add_from_file(), gtk_builder_add_from_resource() или gtk_builder_add_from_string().

GtkBuilder хранит ссылки на все объекты, которые он создал, и удаляет эти ссылки при завершении работы. Это завершение может привести к уничтожению объектов, не являющихся виджетами, или виджетов, которые не содержатся в главном окне. Для основных окон, созданных билдером, пользователь обязан вызвать gtk_widget_destroy(), чтобы избавиться от них и всех содержащихся в них виджетов.

Функции gtk_builder_get_object() и gtk_builder_get_objects() могут использоваться для доступа к виджетам в интерфейсе по именам, заданным в описании пользовательского интерфейса. Основные окна, возвращённые этими функциями, будут существовать до тех пор, пока пользователь явно не уничтожит их с помощью gtk_widget_destroy(). Другие виджеты будут либо частью большей иерархии, созданной билдером (в этом случае вы не должны беспокоиться о их жизненном цикле), либо без родителя, в этом случае их необходимо добавить в какой-либо контейнер для использования. Объекты, не являющиеся виджетами, необходимо хранить с помощью g_object_ref(), чтобы они сохранялись после завершения работы билдера.

Функция gtk_builder_connect_signals() и её варианты могут использоваться для подключения обработчиков к сигналам, указанным в описании.

Определения пользовательского интерфейса GtkBuilder

GtkBuilder парсит текстовые описания пользовательских интерфейсов, которые заданы в формате XML, приблизительно описываемом схемой RELAX NG ниже. Мы будем называть эти описания "определениями пользовательского интерфейса GtkBuilder" или просто "определениями интерфейса", если контекст понятен. Не путайте определения пользовательского интерфейса GtkBuilder с определениями интерфейса GtkUIManager, которые ограничены в своём применении. Обычно в качестве расширения файла для файлов, содержащих определения пользовательского интерфейса GtkBuilder, используется .ui.

Компактный синтаксис RELAX NG

Главный элемент — <interface>. Он необязательно принимает атрибут «domain», который заставит билдер искать переведённые строки, используя dgettext() в заданном домене. Это также можно сделать, вызвав gtk_builder_set_translation_domain() в билдере. Объекты описываются элементами <object>, которые могут содержать элементы <property> для установки свойств, элементы <signal> для подключения сигналов к обработчикам и элементы <child>, которые описывают дочерние объекты (чаще всего виджеты внутри контейнера, но также, например, действия в группе действий или столбцы в модели дерева). Элемент <child> содержит элемент <object>, который описывает дочерний объект. Целевые версии инструментария описываются элементами <requires>, атрибут «lib» указывает библиотеку виджетов (в настоящее время единственное поддерживаемое значение — «gtk+»), а атрибут «version» указывает целевую версию в формате «<major>.<minor>». Билдер выдаст ошибку, если требования к версии не будут соблюдены.

Как правило, конкретный тип объекта, представленный элементом <object>, задаётся атрибутом «class». Если тип ещё не загружен, GTK+ пытается найти функцию get_type() из имени класса, применяя эвристику. Это работает в большинстве случаев, но при необходимости можно явно указать имя функции get_type() с помощью атрибута "type-func". В качестве специального случая GtkBuilder позволяет использовать объект, созданный GtkUIManager в другой части определения пользовательского интерфейса, указав идентификатор GtkUIManager в атрибуте «constructor» и имя объекта в атрибуте «id».

Объектам может быть присвоено имя с помощью атрибута «id», что позволяет приложению извлекать их из билдера с помощью gtk_builder_get_object(). Идентификатор также необходим для использования объекта в качестве значения свойства в других частях определения пользовательского интерфейса. GTK+ резервирует идентификаторы, начинающиеся и заканчивающиеся подчёркиваниями (3 подчёркивания), для собственных нужд.

Установка свойств объектов довольно проста с помощью элемента <property>: атрибут «name» указывает имя свойства, а содержимое элемента указывает значение. Если атрибут «translatable» имеет значение true, GTK+ использует gettext() (или dgettext() если в билдере установлен домен перевода) для поиска перевода значения. Это происходит до разбора значения, поэтому его можно использовать для свойств любого типа, но он, вероятно, наиболее полезен для строковых свойств. Также можно указать контекст для устранения неоднозначности коротких строк и комментарии, которые могут помочь переводчикам.

GtkBuilder может парсить текстовые представления для наиболее распространённых типов свойств: символов, строк, целых чисел, чисел с плавающей точкой, логических значений (строки типа «TRUE», «t», «yes», «y», «1» интерпретируются как TRUE, строки типа «FALSE», «f», «no», «n», «0» интерпретируются как FALSE), перечислений (могут быть указаны по имени, нику или целому значению), флагов (могут быть указаны по имени, нику, целому значению, необязательно комбинируясь с «|», например, «GTK_VISIBLE|GTK_REALIZED») и цветов (в формате, понятном gdk_rgba_parse()). Pixbuфы могут быть указаны как имя файла изображения для загрузки. Объекты могут быть указаны по имени и по умолчанию относятся к объектам, объявленным в локальном фрагменте XML, и к объектам, доступным через gtk_builder_expose_object().

В общем случае GtkBuilder допускает ссылки на вперёд на объекты — объявленные в локальном XML; объект не должен быть создан, прежде чем на него можно будет сослаться. Исключением из этого правила является то, что объект должен быть создан, прежде чем он может быть использован в качестве значения свойства, предназначенного только для построения.

Также возможно привязать значение свойства к значению свойства другого объекта, используя атрибуты «bind-source» для указания исходного объекта привязки, «bind-property» для указания исходного свойства и необязательно «bind-flags» для указания флагов привязки. Внутренне билдер реализует это с помощью объектов GBinding. Более подробная информация представлена в g_object_bind_property().

Обработчики сигналов настраиваются с помощью элемента <signal>. Атрибут «name» указывает имя сигнала, а атрибут «handler» указывает функцию для подключения к сигналу. По умолчанию GTK+ пытается найти обработчик, используя g_module_symbol(), но это можно изменить, передав пользовательскую функцию GtkBuilderConnectFunc в gtk_builder_connect_signals_full(). Остальные атрибуты «after», «swapped» и «object» имеют тот же смысл, что и соответствующие параметры функций g_signal_connect_object() или g_signal_connect_data(). Атрибут «last_modification_time» также разрешён, но он не имеет значения для билдера.

Иногда необходимо обратиться к виджетам, которые были неявно созданы GTK+ в качестве части составного виджета, для установки свойств на них или для добавления дополнительных дочерних элементов (например, vbox диалога GtkDialog). Этого можно достичь, установив свойство «internal-child» элемента <child> в значение true. Обратите внимание, что GtkBuilder всё ещё требует элемента <object> для внутреннего дочернего элемента, даже если он уже был создан.

У ряда виджетов есть разные места, где можно добавить дочерний элемент (например, вкладки по сравнению с содержимым страницы в книгах). Это может быть отражено в определении пользовательского интерфейса с помощью атрибута «type» в элементе <child>. Возможные значения атрибута «type» описаны в разделах, описывающих специфичные для виджетов части определений пользовательского интерфейса.

Определение пользовательского интерфейса GtkBuilder

<interface>
<object class="GtkDialog" id="dialog1">
<child internal-child="vbox">
<object class="GtkBox" id="vbox1">
<property name="border-width">10</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="hbuttonbox1">
<property name="border-width">20</property>
<child>
<object class="GtkButton" id="ok_button">
<property name="label">gtk-ok</property>
<property name="use-stock">TRUE</property>
<signal name="clicked" handler="ok_button_clicked"/>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</interface>

Помимо этой общей структуры, несколько классов объектов определяют собственные фрагменты XML DTD для заполнения заполнительных элементов ANY в вышеприведённом DTD. Обратите внимание, что пользовательский элемент в элементе <child> анализируется обработчиком пользовательских тегов родительского объекта, а пользовательский элемент в элементе <object> — обработчиком пользовательских тегов объекта.

Эти фрагменты XML поясняются в документации соответствующих объектов.

Кроме того, начиная с версии 3.10, для определения компонентов виджета класса был добавлен специальный тег <template>. Подробности см. в документации GtkWidget.

Функции

GtkBuilderConnectFunc ()

void
(*GtkBuilderConnectFunc) (GtkBuilder *builder,
                          GObject *object,
                          const gchar *signal_name,
                          const gchar *handler_name,
                          GObject *connect_object,
                          GConnectFlags flags,
                          gpointer user_data);

Это сигнатура функции, используемой для подключения сигналов. Она используется методами gtk_builder_connect_signals() и gtk_builder_connect_signals_full(). Она предназначена в основном для языковых библиотек интерпретируемых языков, но может быть полезна, когда программист хочет больше контролировать процесс подключения сигналов. Обратите внимание, что эту функцию можно вызвать только один раз, последующие вызовы ничего не сделают.

Параметры

builder

объект GtkBuilder

object

объект, к которому нужно подключить сигнал

signal_name

имя сигнала

handler_name

имя обработчика

connect_object

объект GObject, если не NULL, используйте g_signal_connect_object().

[nullable]

flags

GConnectFlags для использования

user_data

данные пользователя

С: 2.12

gtk_builder_new ()

GtkBuilder *
gtk_builder_new (void);

Создаёт новый пустой объект билдера.

Эта функция полезна только если вы планируете выполнить несколько вызовов gtk_builder_add_from_file(), gtk_builder_add_from_resource() или gtk_builder_add_from_string() для объединения нескольких описаний пользовательского интерфейса в один билдер.

Большинство пользователей, вероятно, захотят использовать gtk_builder_new_from_file(), gtk_builder_new_from_resource() или gtk_builder_new_from_string().

Возвращает

новый (пустой) объект GtkBuilder

С: 2.12

gtk_builder_new_from_file ()

GtkBuilder *
gtk_builder_new_from_file (const gchar *filename);

Создаёт определение пользовательского интерфейса GtkBuilder из файла filename .

Если возникает ошибка при открытии файла или разборе описания, программа завершится аварийно. Вы должны пытаться парсить описания пользовательского интерфейса только из файлов, поставляемых с вашей программой.

Параметры

filename

имя файла описания пользовательского интерфейса

Возвращает

объект GtkBuilder с описанным интерфейсом

С: 3.10

gtk_builder_new_from_resource ()

GtkBuilder *
gtk_builder_new_from_resource (const gchar *resource_path);

Создаёт определение пользовательского интерфейса GtkBuilder по пути resource_path .

Если возникает ошибка при поиске ресурса или разборе описания, программа завершится аварийно.

Параметры

resource_path

путь к ресурсу GResource

Возвращает

объект GtkBuilder с описанным интерфейсом

С: 3.10

gtk_builder_new_from_string ()

GtkBuilder *
gtk_builder_new_from_string (const gchar *string,
                             gssize length);

Создаёт пользовательский интерфейс, описанный в string (в формате определения пользовательского интерфейса GtkBuilder).

Если string имеет завершение NULL, тогда length должно быть -1. Если length не равно -1, то это длина string .

Если при разборе string возникает ошибка, программа завершится аварийно. Не пытайтесь парсить описания пользовательского интерфейса из ненадежных источников.

Параметры

string

описание пользовательского интерфейса (XML)

length

длина string или -1

Возвращает

объект GtkBuilder с интерфейсом, описанным в string

С: 3.10

gtk_builder_add_callback_symbol ()

void
gtk_builder_add_callback_symbol (GtkBuilder *builder,
                                 const gchar *callback_name,
                                 GCallback callback_symbol);

Добавляет callback_symbol в область действия builder под заданным callback_name .

Использование этой функции переопределяет поведение gtk_builder_connect_signals() для всех символов обратного вызова, которые добавляются. Это позволяет лучше инкапсулировать код, так как не требует, чтобы символы обратного вызова объявлялись в глобальном пространстве имён.

Параметры

builder

объект GtkBuilder

callback_name

Имя обратного вызова, ожидаемого в XML

callback_symbol

указатель на обратный вызов.

[scope async]

С: 3.10

gtk_builder_add_callback_symbols ()

void
gtk_builder_add_callback_symbols (GtkBuilder *builder,
                                  const gchar *first_callback_name,
                                  GCallback first_callback_symbol,
                                  ...);

Функция для удобства добавления многих обратных вызовов вместо вызова gtk_builder_add_callback_symbol() для каждого символа.

Параметры

builder

объект GtkBuilder

first_callback_name

Имя обратного вызова, ожидаемого в XML

first_callback_symbol

указатель на обратный вызов.

[scope async]

...

Список пар «имя обратного вызова — указатель на обратный вызов», завершённых NULL

С: 3.10

gtk_builder_lookup_callback_symbol ()

GCallback
gtk_builder_lookup_callback_symbol (GtkBuilder *builder,
                                    const gchar *callback_name);

Извлекает символ, ранее добавленный в builder с помощью gtk_builder_add_callback_symbols()

Эта функция предназначена для возможного использования в языковых связках или в любом случае, когда необходимо настраивать подключения сигналов с помощью gtk_builder_connect_signals_full()

[skip]

Параметры

builder

a GtkBuilder

callback_name

Имя обратного вызова

Возвращает

Символ обратного вызова в builder для callback_name , или NULL.

[nullable]

С версии: 3.10

gtk_builder_add_from_file ()

guint
gtk_builder_add_from_file (GtkBuilder *builder,
                           const gchar *filename,
                           GError **error);

Разбирает файл, содержащий определение пользовательского интерфейса GtkBuilder, и объединяет его с текущим содержимым builder .

Большинство пользователей, вероятно, захотят использовать gtk_builder_new_from_file().

Если произошла ошибка, будет возвращено 0, и error получит GError из области GTK_BUILDER_ERROR, G_MARKUP_ERROR или G_FILE_ERROR.

Вряд ли стоит пытаться обрабатывать ошибки этого вызова. Не следует использовать эту функцию с недоверенными файлами (т.е. файлами, не являющимися частью вашего приложения). Повреждённые файлы GtkBuilder могут легко привести к сбою программы, а также возможно утечка памяти, приведшая к ошибке. Единственное разумное действие при обнаружении ошибки — вызвать g_error().

Параметры

builder

a GtkBuilder

filename

имя файла для разбора

error

место для возврата ошибки, или NULL.

[allow-none]

Возвращает

Положительное значение при успехе, 0 в случае ошибки

С версии: 2.12

gtk_builder_add_from_resource ()

guint
gtk_builder_add_from_resource (GtkBuilder *builder,
                               const gchar *resource_path,
                               GError **error);

Разбирает ресурсный файл, содержащий определение пользовательского интерфейса GtkBuilder, и объединяет его с текущим содержимым builder .

Большинство пользователей, вероятно, захотят использовать gtk_builder_new_from_resource().

Если произошла ошибка, будет возвращено 0, и error получит GError из области GTK_BUILDER_ERROR, G_MARKUP_ERROR или G_RESOURCE_ERROR.

Вряд ли стоит пытаться обрабатывать ошибки этого вызова. Единственное разумное действие при обнаружении ошибки — вызвать g_error().

Параметры

builder

a GtkBuilder

resource_path

путь к ресурсному файлу для разбора

error

место для возврата ошибки, или NULL.

[allow-none]

Возвращает

Положительное значение при успехе, 0 в случае ошибки

С версии: 3.4

gtk_builder_add_from_string ()

guint
gtk_builder_add_from_string (GtkBuilder *builder,
                             const gchar *buffer,
                             gsize length,
                             GError **error);

Разбирает строку, содержащую определение пользовательского интерфейса GtkBuilder, и объединяет её с текущим содержимым builder .

Большинство пользователей, вероятно, захотят использовать gtk_builder_new_from_string().

При ошибке будет возвращено 0, и error получит GError из области GTK_BUILDER_ERROR, G_MARKUP_ERROR или G_VARIANT_PARSE_ERROR.

Вряд ли стоит пытаться обрабатывать ошибки этого вызова. Единственное разумное действие при обнаружении ошибки — вызвать g_error().

Параметры

builder

a GtkBuilder

buffer

строка для разбора

length

длина buffer (может быть -1, если buffer имеет нуль-терминатор)

error

место для возврата ошибки, или NULL.

[allow-none]

Возвращает

Положительное значение при успехе, 0 в случае ошибки

С версии: 2.12

gtk_builder_add_objects_from_file ()

guint
gtk_builder_add_objects_from_file (GtkBuilder *builder,
                                   const gchar *filename,
                                   gchar **object_ids,
                                   GError **error);

Парсит файл, содержащий определение пользовательского интерфейса GtkBuilder, создавая только запрошенные объекты и объединяя их с текущим содержимым builder .

При ошибках возвращается 0, и error получает GError из области GTK_BUILDER_ERROR, G_MARKUP_ERROR или G_FILE_ERROR.

Если вы добавляете объект, зависящий от объекта, который не является его потомком (например, GtkTreeView, зависящий от его GtkTreeModel), необходимо явно указать все из них в object_ids .

Параметры

builder

a GtkBuilder

filename

имя файла для парсинга

object_ids

массив объектов для создания, завершающийся нулём.

[array zero-terminated=1][element-type utf8]

error

место для возврата ошибки или NULL.

[allow-none]

Возвращаемое значение

Положительное значение при успехе, 0 при ошибке.

С: 2.14

gtk_builder_add_objects_from_string ()

guint
gtk_builder_add_objects_from_string (GtkBuilder *builder,
                                     const gchar *buffer,
                                     gsize length,
                                     gchar **object_ids,
                                     GError **error);

Парсит строку, содержащую определение пользовательского интерфейса GtkBuilder, создавая только запрошенные объекты и объединяя их с текущим содержимым builder .

При ошибках возвращается 0, и error получает GError из области GTK_BUILDER_ERROR или G_MARKUP_ERROR.

Если вы добавляете объект, зависящий от объекта, который не является его потомком (например, GtkTreeView, зависящий от его GtkTreeModel), необходимо явно указать все из них в object_ids .

Параметры

builder

a GtkBuilder

buffer

строка для парсинга

length

длина buffer (может быть -1, если buffer имеет нулевое завершение)

object_ids

массив объектов для создания, завершающийся нулём.

[array zero-terminated=1][element-type utf8]

error

место для возврата ошибки или NULL.

[allow-none]

Возвращаемое значение

Положительное значение при успехе, 0 при ошибке.

С: 2.14

gtk_builder_add_objects_from_resource ()

guint
gtk_builder_add_objects_from_resource (GtkBuilder *builder,
                                       const gchar *resource_path,
                                       gchar **object_ids,
                                       GError **error);

Парсит ресурсный файл, содержащий определение пользовательского интерфейса GtkBuilder, создавая только запрошенные объекты и объединяя их с текущим содержимым builder .

При ошибках возвращается 0, и error получает GError из области GTK_BUILDER_ERROR, G_MARKUP_ERROR или G_RESOURCE_ERROR.

Если вы добавляете объект, зависящий от объекта, который не является его потомком (например, GtkTreeView, зависящий от его GtkTreeModel), необходимо явно указать все из них в object_ids .

Параметры

builder

a GtkBuilder

resource_path

путь к ресурсному файлу для парсинга

object_ids

массив объектов для создания, завершающийся нулём.

[array zero-terminated=1][element-type utf8]

error

место для возврата ошибки или NULL.

[allow-none]

Возвращаемое значение

Положительное значение при успехе, 0 при ошибке.

С: 3.4

gtk_builder_extend_with_template ()

guint
gtk_builder_extend_with_template (GtkBuilder *builder,
                                  GtkWidget *widget,
                                  GType template_type,
                                  const gchar *buffer,
                                  gsize length,
                                  GError **error);

Основной приватный входной пункт для построения составных контейнерных компонентов из шаблона XML.

Экспортировано исключительно для проверки шаблонов инструментом gtk-builder-tool, приложениям нет необходимости вызывать эту функцию.

Параметры

builder

a GtkBuilder

widget

компонент, который расширяется

template_type

тип шаблона

buffer

строка для парсинга

length

длина buffer (может быть -1, если buffer имеет нулевое завершение)

error

место для возврата ошибки или NULL.

[allow-none]

Возвращаемое значение

Положительное значение при успехе, 0 при ошибке.

gtk_builder_get_object ()

GObject *
gtk_builder_get_object (GtkBuilder *builder,
                        const gchar *name);

Получает объект с именем name. Обратите внимание, что эта функция не увеличивает счётчик ссылок возвращаемого объекта.

Параметры

builder

объект GtkBuilder

name

имя объекта для получения

Возвращаемое значение

объект с именем name или NULL, если он не был найден в дереве объектов.

[nullable][transfer none]

С момента: 2.12

gtk_builder_get_objects ()

GSList *
gtk_builder_get_objects (GtkBuilder *builder);

Получает все объекты, созданные builder. Обратите внимание, что эта функция не увеличивает счётчики ссылок возвращённых объектов.

Параметры

builder

объект GtkBuilder

Возвращаемое значение

новый выделенный список GSList, содержащий все объекты, созданные экземпляром GtkBuilder. Он должен быть освобождён с помощью g_slist_free().

[element-type GObject][transfer container]

С момента: 2.12

gtk_builder_expose_object ()

void
gtk_builder_expose_object (GtkBuilder *builder,
                           const gchar *name,
                           GObject *object);

Добавляет object в пул объектов builder, чтобы его можно было использовать, как и любой другой объект, созданный конструктором.

Параметры

builder

объект GtkBuilder

name

имя объекта, экспонируемого конструктору

object

объект для экспонирования

С момента: 3.8

gtk_builder_connect_signals ()

void
gtk_builder_connect_signals (GtkBuilder *builder,
                             gpointer user_data);

Этот метод является более простым вариантом gtk_builder_connect_signals_full(). Он использует символы, явно добавленные в builder с помощью предыдущих вызовов gtk_builder_add_callback_symbol(). В случае, если символы не добавлены явно, он использует возможности интроспекции GModule (открывая модуль NULL), чтобы просмотреть таблицу символов приложения. Отсюда он пытается сопоставить имена обработчиков сигналов, указанные в описании интерфейса, с символами в приложении и подключает сигналы. Обратите внимание, что эту функцию можно вызвать только один раз, последующие вызовы ничего не сделают.

Обратите внимание, что, если gtk_builder_add_callback_symbol() не вызывается для всех сигнальных обратных вызовов, на которые ссылается загруженный XML, эта функция потребует поддержки GModule на платформе.

Если вы полагаетесь на поддержку GModule для поиска обратных вызовов в таблице символов, следует обратить внимание на следующие детали:

При компиляции приложений для Windows вы должны объявлять сигнальные обратные вызовы с G_MODULE_EXPORT, иначе они не будут помещены в таблицу символов. В Linux и Unix это необязательно; приложения вместо этого должны быть скомпилированы с флагом -Wl,--export-dynamic CFLAGS и связаны с gmodule-export-2.0.

Параметры

builder

объект GtkBuilder

user_data

пользовательские данные, которые будут возвращены со всеми сигналами

С момента: 2.12

gtk_builder_connect_signals_full ()

void
gtk_builder_connect_signals_full (GtkBuilder *builder,
                                  GtkBuilderConnectFunc func,
                                  gpointer user_data);

Эта функция может быть рассмотрена как версия связывания интерпретируемого языка gtk_builder_connect_signals(), за исключением того, что она не требует GModule для корректной работы.

Параметры

builder

объект GtkBuilder

func

функция, используемая для подключения сигналов.

[scope call]

user_data

произвольные данные, которые будут переданы функции подключения

С момента: 2.12

gtk_builder_set_translation-domain ()

void
gtk_builder_set_translation_domain (GtkBuilder *builder,
                                    const gchar *domain);

Устанавливает домен перевода для builder. См. свойство “translation-domain”.

Параметры

builder

объект GtkBuilder

domain

домен перевода или NULL.

[allow-none]

С момента: 2.12

gtk_builder_get_translation-domain ()

const gchar *
gtk_builder_get_translation_domain (GtkBuilder *builder);

Получает домен перевода для builder.

Параметры

builder

объект GtkBuilder

Возвращаемое значение

домен перевода. Эта строка принадлежит объекту конструктора и не должна изменяться или освобождаться.

С момента: 2.12

gtk_builder_set_application ()

void
gtk_builder_set_application (GtkBuilder *builder,
                             GtkApplication *application);

Устанавливает приложение, связанное с builder.

Вам нужна эта функция только если в вашем процессе существует более одного GApplication. application не может быть NULL.

Параметры

builder

объект GtkBuilder

application

объект GtkApplication

С момента: 3.10

gtk_builder_get_application ()

GtkApplication *
gtk_builder_get_application (GtkBuilder *builder);

Получает связанное с билдером приложение GtkApplication.

Приложение GtkApplication используется для создания прокси-сервисов действий, как запрошено из XML, которое загружает билдер.

По умолчанию билдер использует приложение по умолчанию: то, которое из g_application_get_default(). Если вы хотите использовать другое приложение для построения прокси-сервисов, используйте gtk_builder_set_application().

Параметры

builder

a GtkBuilder

Возвращает

используемое билдером приложение или NULL.

[nullable][transfer none]

С: 3.10

gtk_builder_get_type_from_name ()

GType
gtk_builder_get_type_from_name (GtkBuilder *builder,
                                const char *type_name);

Ищет тип по имени, используя виртуальную функцию, которой обладает GtkBuilder для этой цели. Это используется в основном при реализации интерфейса GtkBuildable для определённого типа.

Параметры

builder

a GtkBuilder

type_name

имя искомого типа

Возвращает

найденный GType для type_name или G_TYPE_INVALID, если тип не найден

С: 2.12

gtk_builder_value_from_string ()

gboolean
gtk_builder_value_from_string (GtkBuilder *builder,
                               GParamSpec *pspec,
                               const gchar *string,
                               GValue *value,
                               GError **error);

Эта функция разбирает значение из строки. Эта функция вызывает g_value_init() для аргумента value, поэтому предварительная инициализация не требуется.

Эта функция может обрабатывать значения типа char, uchar, boolean, int, uint, long, ulong, enum, flags, float, double, string, GdkColor, GdkRGBA и GtkAdjustment. Поддержка значений типа GtkWidget ещё предстоит.

При ошибках возвращается FALSE, и error будет назначен GError из области GTK_BUILDER_ERROR.

Параметры

builder

a GtkBuilder

pspec

the GParamSpec для свойства

string

строковое представление значения

value

GValue для хранения результата.

[out]

error

место для возврата ошибки или NULL.

[allow-none]

Возвращает

TRUE при успехе

С: 2.12

gtk_builder_value_from_string_type ()

gboolean
gtk_builder_value_from_string_type (GtkBuilder *builder,
                                    GType type,
                                    const gchar *string,
                                    GValue *value,
                                    GError **error);

Как gtk_builder_value_from_string(), эта функция разбирает значение из строки, но принимает GType вместо GParamSpec. Эта функция вызывает g_value_init() для аргумента value, поэтому предварительная инициализация не требуется.

При ошибках возвращается FALSE, и error будет назначен GError из области GTK_BUILDER_ERROR.

Параметры

builder

a GtkBuilder

type

the GType типа значения

string

строковое представление значения

value

GValue для хранения результата.

[out]

error

место для возврата ошибки или NULL.

[allow-none]

Возвращает

TRUE при успехе

С: 2.12

GTK_BUILDER_WARN_INVALID_CHILD_TYPE()

#define             GTK_BUILDER_WARN_INVALID_CHILD_TYPE(object, type)

Этот макрос должен использоваться для вывода предупреждения об неожиданном значении type в реализации GtkBuildable add_child.

Параметры

object

the GtkBuildable с которым произошло предупреждение

type

неожиданное значение типа

Типы и значения

GtkBuilder

typedef struct _GtkBuilder GtkBuilder;

Перечисление GtkBuilderError

Коды ошибок, которые идентифицируют различные ошибки, которые могут возникнуть при использовании GtkBuilder.

Члены

GTK_BUILDER_ERROR_INVALID_TYPE_FUNCTION

Атрибут type-func не указал функцию, возвращающую GType.

GTK_BUILDER_ERROR_UNHANDLED_TAG

Входной файл содержал тег, который GtkBuilder не может обработать.

GTK_BUILDER_ERROR_MISSING_ATTRIBUTE

Недоставал атрибут, необходимый для GtkBuilder.

GTK_BUILDER_ERROR_INVALID_ATTRIBUTE

GtkBuilder обнаружил неизвестный атрибут.

GTK_BUILDER_ERROR_INVALID_TAG

GtkBuilder обнаружил неизвестный тег.

GTK_BUILDER_ERROR_MISSING_PROPERTY_VALUE

Недоставало требуемое значение свойства.

GTK_BUILDER_ERROR_INVALID_VALUE

GtkBuilder не смог разобрать значение некоторого атрибута.

GTK_BUILDER_ERROR_VERSION_MISMATCH

Входной файл требует более новой версии GTK+.

GTK_BUILDER_ERROR_DUPLICATE_ID

Идентификатор объекта указан дважды.

GTK_BUILDER_ERROR_OBJECT_TYPE_REFUSED

Указанный тип объекта имеет тот же тип или происходит от типа составного класса, расширяемого XML-файлом билдера.

GTK_BUILDER_ERROR_TEMPLATE_MISMATCH

В шаблоне XML составного класса был указан неправильный тип.

GTK_BUILDER_ERROR_INVALID_PROPERTY

Указанное свойство неизвестно для класса объекта.

GTK_BUILDER_ERROR_INVALID_SIGNAL

Указанный сигнал неизвестен для класса объекта.

GTK_BUILDER_ERROR_INVALID_ID

Идентификатор объекта неизвестен

GTK_BUILDER_ERROR

#define GTK_BUILDER_ERROR                (gtk_builder_error_quark ())

Подробное описание свойств

Свойство “translation-domain”

  “translation-domain”       gchar *

Домен перевода, используемый при переводе значений свойств, помеченных как переводимые в описаниях интерфейса. Если домен перевода равен NULL, GtkBuilder использует gettext(), в противном случае g_dgettext().

Флаги: Чтение / Запись

Значение по умолчанию: NULL

С версии: 2.12

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.20/GtkBuilder.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API