Spec-Zone.ru › GTK 4.0

GtkBuilder

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

Функции

GtkBuilder * gtk_builder_new ()
GtkBuilder * gtk_builder_new_from_file ()
GtkBuilder * gtk_builder_new_from_resource ()
GtkBuilder * gtk_builder_new_from_string ()
GClosure * gtk_builder_create_closure ()
gboolean gtk_builder_add_from_file ()
gboolean gtk_builder_add_from_resource ()
gboolean gtk_builder_add_from_string ()
gboolean gtk_builder_add_objects_from_file ()
gboolean gtk_builder_add_objects_from_string ()
gboolean gtk_builder_add_objects_from_resource ()
gboolean gtk_builder_extend_with_template ()
GObject * gtk_builder_get_object ()
GSList * gtk_builder_get_objects ()
void gtk_builder_expose_object ()
void gtk_builder_set_current_object ()
GObject * gtk_builder_get_current_object ()
void gtk_builder_set_scope ()
GtkBuilderScope * gtk_builder_get_scope ()
void gtk_builder_set_translation_domain ()
const char * gtk_builder_get_translation_domain ()
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()

Свойства

GObject * текущий-объект Чтение / Запись
GtkBuilderScope * область Чтение / Запись / Создание
char * домен-перевода Чтение / Запись

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

GtkBuilder
перечисление GtkBuilderClosureFlags
перечисление 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_window_destroy(), чтобы избавиться от них и всех содержащихся в них виджетов.

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

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

GtkBuilder анализирует текстовые описания пользовательских интерфейсов, которые заданы в формате XML. Мы будем называть эти описания «определениями пользовательского интерфейса GtkBuilder» или просто «определениями интерфейса», если контекст ясен.

Основной элемент — <interface>. Он необязательно принимает атрибут «домен», который заставит билдер искать переведённые строки с помощью 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».

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

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

GtkBuilder может анализировать текстовые представления для наиболее распространённых типов свойств: символов, строк, целых чисел, чисел с плавающей точкой, булевых значений (строки, такие как «TRUE», «t», «yes», «y», «1», интерпретируются как TRUE, строки, такие как «FALSE», «f», «no», «n», «0», интерпретируются как FALSE), перечислений (могут быть указаны по имени, нику или целому значению), флагов (могут быть указаны по имени, нику, целому значению, необязательно комбинируя с «|», например, «GTK_INPUT_HINT_EMOJI|GTK_INPUT_HINT_LOWERCASE») и цветов (в формате, понятном 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()

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

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

Обработчики сигналов и указатели на функции

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

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

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

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

<interface>
  <object class="GtkDialog" id="dialog1">
    <child internal-child="vbox">
      <object class="GtkBox" id="vbox1">
        <child internal-child="action_area">
          <object class="GtkBox" id="hbuttonbox1">
            <child>
              <object class="GtkButton" id="ok_button">
                <property name="label">gtk-ok</property>
                <signal name="clicked" handler="ok_button_clicked"/>
              </object>
            </child>
          </object>
        </child>
      </object>
    </child>
  </object>
</interface>

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

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

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

Функции

gtk_builder_new ()

GtkBuilder *
gtk_builder_new (void);

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

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

Возвращает

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

gtk_builder_new_from_file ()

GtkBuilder *
gtk_builder_new_from_file (const char *filename);

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

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

Параметры

filename

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

Возвращает

GtkBuilder , содержащий описанный интерфейс

gtk_builder_new_from_resource ()

GtkBuilder *
gtk_builder_new_from_resource (const char *resource_path);

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

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

Параметры

resource_path

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

Возвращает

GtkBuilder , содержащий описанный интерфейс

gtk_builder_new_from_string ()

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

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

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

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

Параметры

string

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

length

длина string или -1

Возвращает

GtkBuilder , содержащий интерфейс, описанный в string

gtk_builder_create_closure ()

GClosure *
gtk_builder_create_closure (GtkBuilder *builder,
                            const char *function_name,
                            GtkBuilderClosureFlags flags,
                            GObject *object,
                            GError **error);

Создаёт замыкание для вызова функции, названной function_name, используя реализацию builder в GtkBuilderScope.

Если замыкание создать не удалось, возвращается NULL, и error будет установлено.

Параметры

builder

объект GtkBuilder

function_name

имя искомой функции

flags

флаги создания замыкания

object

Объект для создания замыкания.

[nullable]

error

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

[allow-none]

Возвращает

Новое замыкание для вызова function_name.

[nullable]

gtk_builder_add_from_file ()

gboolean
gtk_builder_add_from_file (GtkBuilder *builder,
                           const char *filename,
                           GError **error);

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

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

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

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

Параметры

builder

объект GtkBuilder

filename

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

error

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

[allow-none]

Возвращает

TRUE при успехе, FALSE при ошибке

gtk_builder_add_from_resource ()

gboolean
gtk_builder_add_from_resource (GtkBuilder *builder,
                               const char *resource_path,
                               GError **error);

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

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

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

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

Параметры

builder

объект GtkBuilder

resource_path

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

error

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

[allow-none]

Возвращает

TRUE при успехе, FALSE при ошибке

gtk_builder_add_from_string ()

gboolean
gtk_builder_add_from_string (GtkBuilder *builder,
                             const char *buffer,
                             gssize length,
                             GError **error);

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

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

При возникновении ошибок будет возвращено FALSE и 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]

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

TRUE при успехе, FALSE при ошибке

gtk_builder_add_objects_from_file ()

gboolean
gtk_builder_add_objects_from_file (GtkBuilder *builder,
                                   const char *filename,
                                   const char **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]

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

TRUE при успехе, FALSE при ошибке

gtk_builder_add_objects_from_string ()

gboolean
gtk_builder_add_objects_from_string (GtkBuilder *builder,
                                     const char *buffer,
                                     gssize length,
                                     const char **object_ids,
                                     GError **error);

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

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

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

Параметры

...

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

TRUE при успехе, FALSE при ошибке

gtk_builder_add_objects_from_resource ()

gboolean
gtk_builder_add_objects_from_resource (GtkBuilder *builder,
                                       const char *resource_path,
                                       const char **object_ids,
                                       GError **error);

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

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

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

Параметры

...

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

TRUE при успехе, FALSE при ошибке

gtk_builder_extend_with_template ()

gboolean
gtk_builder_extend_with_template (GtkBuilder *builder,
                                  GObject *object,
                                  GType template_type,
                                  const char *buffer,
                                  gssize length,
                                  GError **error);

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

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

Параметры

builder

a GtkBuilder

object

объект, который расширяется

template_type

тип, для которого предназначен шаблон

buffer

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

length

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

error

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

[allow-none]

Возвращает

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

gtk_builder_get_object ()

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

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

Параметры

builder

a GtkBuilder

name

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

Возвращает

объект с именем name или NULL если его невозможно найти в дереве объектов.

[nullable][transfer none]

gtk_builder_get_objects ()

GSList *
gtk_builder_get_objects (GtkBuilder *builder);

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

Параметры

builder

a GtkBuilder

Возвращает

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

[element-type GObject][transfer container]

gtk_builder_expose_object ()

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

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

Параметры

builder

a GtkBuilder

name

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

object

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

gtk_builder_set_current_object ()

void
gtk_builder_set_current_object (GtkBuilder *builder,
                                GObject *current_object);

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

Например, gtk_widget_init_template() установит текущий объект в виджет, для которого инициируется шаблон. Для функций, таких как gtk_builder_new_from_resource(), текущий объект будет NULL.

Параметры

builder

a GtkBuilder

current_object

новый текущий объект или NULL для отсутствия.

[nullable][transfer none]

gtk_builder_get_current_object ()

GObject *
gtk_builder_get_current_object (GtkBuilder *builder);

Получает текущий объект, установленный с помощью gtk_builder_set_current_object().

Параметры

builder

a GtkBuilder

Возвращает

текущий объект.

[nullable][transfer none]

gtk_builder_set_scope ()

void
gtk_builder_set_scope (GtkBuilder *builder,
                       GtkBuilderScope *scope);

Устанавливает область действия, в которой должен работать builder.

Если scope является NULL, будет создан новый GtkBuilderCScope.

См. документацию GtkBuilderScope для получения подробностей.

Параметры

builder

a GtkBuilder

scope

область действия для использования или NULL для значения по умолчанию.

[nullable][transfer none]

gtk_builder_get_scope ()

GtkBuilderScope *
gtk_builder_get_scope (GtkBuilder *builder);

Получает используемую область действия, установленную с помощью gtk_builder_set_scope().

См. документацию GtkBuilderScope для получения подробностей.

Параметры

builder

a GtkBuilder

Возвращает

текущую область действия.

[transfer none]

gtk_builder_set_translation-domain ()

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

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

Параметры

builder

a GtkBuilder

domain

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

[nullable]

gtk_builder_get_translation_domain ()

const char *
gtk_builder_get_translation_domain (GtkBuilder *builder);

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

Параметры

builder

a GtkBuilder

Возвращает

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

[transfer none][nullable]

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, если тип не найден

gtk_builder_value_from_string ()

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

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

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

В случае ошибок будет возвращено FALSE и error будет назначена ошибка GError из домена GTK_BUILDER_ERROR.

Параметры

builder

a GtkBuilder

pspec

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

string

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

value

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

[out]

error

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

[allow-none]

Возвращает

TRUE при успехе

gtk_builder_value_from_string_type ()

gboolean
gtk_builder_value_from_string_type (GtkBuilder *builder,
                                    GType type,
                                    const char *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

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

[out]

error

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

[allow-none]

Возвращает

TRUE при успехе

GTK_BUILDER_WARN_INVALID_CHILD_TYPE()

#define             GTK_BUILDER_WARN_INVALID_CHILD_TYPE(object, type)

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

Параметры

object

the GtkBuildable объект, для которого возникло предупреждение

type

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

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

GtkBuilder

typedef struct _GtkBuilder GtkBuilder;

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

Список флагов, которые могут быть переданы в gtk_builder_create_closure(). В будущем могут быть добавлены новые значения для новых функций, поэтому внешние реализации GtkBuilderScopeInterface должны проверять флаги на неизвестные значения и поднимать ошибку GTK_BUILDER_ERROR_INVALID_ATTRIBUTE при их обнаружении.

Члены

GTK_BUILDER_CLOSURE_SWAPPED

Перечисление 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_INVALID_FUNCTION

Функция не найдена. Это часто происходит, когда символы заданы как приватные. Компиляция кода с -rdynamic или использование модуля pkgconfig gmodule-export-2.0 может решить эту проблему.

GTK_BUILDER_ERROR

#define GTK_BUILDER_ERROR                (gtk_builder_error_quark ())

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

Свойство “current-object”

  “current-object”           GObject *

Объект, который билдер оценивает.

Владелец: GtkBuilder

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

Свойство “scope”

  “scope”                    GtkBuilderScope *

Область, в которой работает билдер.

Владелец: GtkBuilder

Флаги: Чтение / Запись / Конструирование

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

  “translation-domain”       char *

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

Владелец: GtkBuilder

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

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

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

Spec-Zone.ru

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