GtkСтроитель
GtkBuilder — Создать интерфейс из определения пользовательского интерфейса XML
Функции
Свойства
| 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.
Основным элементом является <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, если не | [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 | длина |
Возвращает
объект 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] |
... | Список пар "имя обратного вызова - указатель на обратный вызов", завершающихся |
С: 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 | ||
callback_name | Имя обратного вызова |
С: 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 | ||
filename | имя файла для парсинга | |
error | место возврата ошибки или | [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 | ||
resource_path | путь к файлу ресурса для парсинга | |
error | место возврата ошибки или | [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 | ||
buffer | строка для парсинга | |
length | длина | |
error | место возврата ошибки или | [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 | ||
filename | имя файла для анализа | |
object_ids | завершающийся нулём массив объектов для построения. | [array zero-terminated=1][element-type utf8] |
error | место возврата ошибки или | [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 | ||
buffer | строка для анализа | |
length | длина | |
object_ids | завершающийся нулём массив объектов для построения. | [array zero-terminated=1][element-type utf8] |
error | место возврата ошибки или | [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 | ||
resource_path | путь к файлу ресурсов для анализа | |
object_ids | завершающийся нулём массив объектов для построения. | [array zero-terminated=1][element-type utf8] |
error | место возврата ошибки или | [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 | ||
widget | виджет, который расширяется | |
template_type | тип, для которого предназначен шаблон | |
buffer | строка для анализа | |
length | длина | |
error | место возврата ошибки или | [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 | домен перевода или | [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 | ||
application |
С момента: 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 |
С момента: 3.10
gtk_builder_get_type_from_name ()
GType gtk_builder_get_type_from_name (GtkBuilder *builder,const char *type_name);
Ищет тип по имени, используя виртуальную функцию, которая есть у GtkBuilder для этой цели. Это в основном используется при реализации интерфейса GtkBuildable для определенного типа.
Параметры
builder | ||
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 | ||
pspec | the GParamSpec для свойства | |
string | строковое представление значения | |
value | GValue для хранения результата. | [out] |
error | место для возврата ошибки или | [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.
Параметры
Возвращает
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