GtkBuilder
GtkBuilder — Создать интерфейс из XML-определения пользовательского интерфейса
Функции
Свойства
| char * | домен-перевода | Чтение / Запись |
Типы и значения
| 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, которые ограничены в своих возможностях. Обычно используют .ui в качестве расширения файла, содержащего определения пользовательского интерфейса GtkBuilder.
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> в истинное значение. Обратите внимание, что 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>Помимо этой общей структуры, несколько классов объектов определяют свои фрагменты DTD XML для заполнения заглушек 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 | Имя обратного вызова |
Возвращаемое значение
Символ обратного вызова в 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 | ||
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, создавая только запрошенные объекты и объединяет их с текущим содержимым 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, создавая только запрошенные объекты и объединяя их с текущим содержимым 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, создавая только запрошенные объекты и объединяя их с текущим содержимым 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 | ||
name | имя объекта для получения |
Возвращаемое значение
объект с именем name или NULL , если его не удалось найти в дереве объектов.
[nullable][transfer none]
С: 2.12
gtk_builder_get_objects ()
GSList *
gtk_builder_get_objects (GtkBuilder *builder); Возвращает все объекты, созданные builder. Обратите внимание, что эта функция не увеличивает счетчики ссылок возвращаемых объектов.
Параметры
builder |
Возвращаемое значение
новый выделенный 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.
Параметры
builder | ||
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 и других Unix-подобных системах это не требуется; приложения следует компилировать с флагом -Wl,--export-dynamic CFLAGS и связывать их с gmodule-export-2.0.
Параметры
builder | объект GtkBuilder | |
user_data | данные пользователя, которые будут переданы всем сигналам |
С версии: 2.12
gtk_builder_connect_signals_full ()
void gtk_builder_connect_signals_full (GtkBuilder *builder,GtkBuilderConnectFunc func,gpointer user_data);
Этот метод можно рассматривать как интерпретируемую версию метода gtk_builder_connect_signals(), за исключением того, что он не требует GModule для корректной работы.
Параметры
builder | объект GtkBuilder | |
func | функция для подключения сигналов. | [scope call] |
user_data | произвольные данные, которые будут переданы функции подключения |
С версии: 2.12
gtk_builder_set_translation_domain ()
void gtk_builder_set_translation_domain (GtkBuilder *builder,const gchar *domain);
Устанавливает домен перевода для builder. См. “translation-domain”.
Параметры
builder | объект GtkBuilder | |
domain | домен перевода или | [allow-none] |
С версии: 2.12
gtk_builder_get_translation_domain ()
const gchar *
gtk_builder_get_translation_domain (GtkBuilder *builder); Возвращает домен перевода для builder.
Параметры
builder | объект GtkBuilder |
Возвращаемое значение
домен перевода. Эта строка принадлежит объекту builder и не должна изменяться или освобождаться.
С версии: 2.12
gtk_builder_set_application ()
void gtk_builder_set_application (GtkBuilder *builder,GtkApplication *application);
Устанавливает приложение, связанное с builder.
Этот метод необходим только если в вашем процессе более одного приложения GApplication. application не может быть NULL.
Параметры
builder | объект GtkBuilder | |
application | объект GtkApplication |
С версии: 3.10
gtk_builder_get_application ()
GtkApplication *
gtk_builder_get_application (GtkBuilder *builder); Получает приложение GtkApplication, связанное со строителем.
Приложение GtkApplication используется для создания прокси-объектов действий, как указано в XML, загружаемом строителем.
По умолчанию строитель использует приложение по умолчанию: то, которое задано g_application_get_default(). Если необходимо использовать другое приложение для создания прокси-объектов, используйте gtk_builder_set_application().
Параметры
builder | объект 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 | объект 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 | объект GtkBuilder | |
pspec | 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.
Параметры
builder | объект GtkBuilder | |
type | тип значения GType | |
string | строковое представление значения | |
value | объект GValue для хранения результата. | [out] |
error | место для возврата ошибки, или | [allow-none] |
Возвращаемое значение
TRUE при успехе
С: 2.12
GTK_BUILDER_WARN_INVALID_CHILD_TYPE()
#define GTK_BUILDER_WARN_INVALID_CHILD_TYPE(object, type)
Этот макрос следует использовать для выдачи предупреждения об неожиданном значении типа type в реализации GtkBuildable add_child.
Параметры
object | объект 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
#define GTK_BUILDER_ERROR (gtk_builder_error_quark ())
Подробное описание свойств
Свойство “translation-domain”
“translation-domain” char *
Домен перевода, используемый при переводе значений свойств, помеченных как переводимые в описаниях интерфейса. Если домен перевода равен NULL, GtkBuilder использует gettext(), в противном случае g_dgettext().
Владелец: GtkBuilder
Флаги: Чтение / Запись
Значение по умолчанию: 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.24/GtkBuilder.html