Spec-Zone.ru › GTK 3.22

GtkСтроитель

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

Функции

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
перечисление 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+ резервирует идентификаторы, начинающиеся и заканчивающиеся символами «___» (три нижних подчёркивания) для собственных целей.

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

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

GVariants могут быть указаны в формате, понимаемом g_variant_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 UI, создавая только запрошенные объекты и объединяя их с текущим содержимым 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 UI, создавая только запрошенные объекты и объединяя их с текущим содержимым 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 UI, создавая только запрошенные объекты и объединяя их с текущим содержимым 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), чтобы просмотреть таблицу символов приложения. Затем он пытается сопоставить имена обработчиков сигналов, указанные в описании интерфейса, с символами в приложении и подключает сигналы. Обратите внимание, что эту функцию можно вызвать только один раз, последующие вызовы ничего не сделают.

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

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

При компиляции приложений для Windows вы должны объявлять обратные вызовы сигналов с G_MODULE_EXPORT, иначе они не будут помещены в таблицу символов. В Linux и Unices это необязательно; приложения следует вместо этого скомпилировать с CFLAGS -Wl,--export-dynamic и связать с 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

a GtkBuilder

application

a 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 в реализации add_child GtkBuildable.

Параметры

object

объект 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.22/GtkBuilder.html

Spec-Zone.ru

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