GtkExpander
GtkExpander — Содержит элемент, который может скрываться
Функции
| GtkWidget * | gtk_expander_new () |
| GtkWidget * | gtk_expander_new_with_mnemonic () |
| void | gtk_expander_set_expanded () |
| gboolean | gtk_expander_get_expanded () |
| void | gtk_expander_set_label () |
| const char * | gtk_expander_get_label () |
| void | gtk_expander_set_use_underline () |
| gboolean | gtk_expander_get_use_underline () |
| void | gtk_expander_set_use_markup () |
| gboolean | gtk_expander_get_use_markup () |
| void | gtk_expander_set_label_widget () |
| GtkWidget * | gtk_expander_get_label_widget () |
| void | gtk_expander_set_resize_toplevel () |
| gboolean | gtk_expander_get_resize_toplevel () |
| void | gtk_expander_set_child () |
| GtkWidget * | gtk_expander_get_child () |
Свойства
| GtkWidget * | child | Чтение / Запись |
| gboolean | expanded | Чтение / Запись / Создание |
| char * | label | Чтение / Запись / Создание |
| GtkWidget * | label-widget | Чтение / Запись |
| gboolean | resize-toplevel | Чтение / Запись |
| gboolean | use-markup | Чтение / Запись / Создание |
| gboolean | use-underline | Чтение / Запись / Создание |
Сигналы
| void | activate | Действие |
Типы и значения
Иерархия объектов
GObject
╰── GInitiallyUnowned
╰── GtkWidget
╰── GtkExpander
Реализованные интерфейсы
GtkExpander реализует GtkAccessible, GtkBuildable и GtkConstraintTarget.
Файлы заголовочных
#include <gtk/gtk.h>
Описание
С помощью GtkExpander пользователь может скрывать или показывать свой дочерний элемент, нажав на треугольник разворачивания, аналогичный треугольнику в GtkTreeView.
Обычно expander используется как frame; вы создаете дочерний виджет и используете gtk_expander_set_child(), чтобы добавить его в expander. При переключении expander он автоматически отобразит или скроет дочерний элемент.
Особое использование
В некоторых случаях вы можете предпочесть сами показывать и скрывать развернутый виджет, например, если хотите создать его в момент развертывания. В этом случае создайте GtkExpander, но не добавляйте в него дочерний элемент. У виджета expander есть свойство “expanded”, которое можно использовать для отслеживания состояния развертывания. Вы должны отслеживать это свойство с помощью подключения сигнала следующим образом:
GtkExpander в качестве GtkBuildable
Реализация GtkExpander интерфейса GtkBuildable поддерживает размещение дочернего элемента в позиции метки, указав «label» в качестве атрибута «type» элемента <child>. Дочерний элемент обычного контента может быть указан без указания атрибута типа <child>.
Пример фрагмента определения пользовательского интерфейса с GtkExpander:
CSS-узлы
static void
expander_callback (GObject *object,
GParamSpec *param_spec,
gpointer user_data)
{
GtkExpander *expander;
expander = GTK_EXPANDER (object);
if (gtk_expander_get_expanded (expander))
{
// Show or create widgets
}
else
{
// Hide or destroy widgets
}
}
static void
create_expander (void)
{
GtkWidget *expander = gtk_expander_new_with_mnemonic ("_More Options");
g_signal_connect (expander, "notify::expanded",
G_CALLBACK (expander_callback), NULL);
// ...
}GtkExpander имеет три CSS-узла: главный узел с именем expander, подчинённый узел с именем title и узел ниже него с именем стрелка. Стрелка expander, который показывает свой дочерний элемент, получает псевдокласс :checked.
Доступность
GtkExpander использует роль GTK_ACCESSIBLE_ROLE_BUTTON.
Функции
gtk_expander_new ()
GtkWidget *
gtk_expander_new (const char *label); Создаёт новый раскрывающийся элемент, используя label в качестве текста метки.
Параметры
label | текст метки. | [nullable] |
Возвращает
новый виджет GtkExpander.
gtk_expander_new_with_mnemonic ()
GtkWidget *
gtk_expander_new_with_mnemonic (const char *label); Создаёт новый раскрывающийся элемент, используя label в качестве текста метки. Если символы в label предваряются нижним подчеркиванием, они подчеркнуты. Если вам нужен символ нижнего подчеркивания в метке, используйте «__» (два нижних подчеркивания). Первый подчеркнутый символ представляет собой сочетание клавиш, называемое мнемоником. Нажатие клавиши Alt и этой клавиши активирует кнопку.
Параметры
label | текст метки с нижним подчеркиванием перед символом мнемоники. | [nullable] |
Возвращает
новый виджет GtkExpander.
gtk_expander_set_expanded ()
void gtk_expander_set_expanded (GtkExpander *expander,gboolean expanded);
Устанавливает состояние раскрывающегося элемента. Установите значение TRUE, если вы хотите отобразить дочерний виджет, и FALSE, если вы хотите скрыть дочерний виджет.
Параметры
expander | виджет GtkExpander | |
expanded | отображается ли дочерний виджет |
gtk_expander_get_expanded ()
gboolean
gtk_expander_get_expanded (GtkExpander *expander); Запрашивает GtkExpander и возвращает его текущее состояние. Возвращает TRUE, если дочерний виджет отображается.
См. gtk_expander_set_expanded().
Параметры
expander | виджет GtkExpander |
Возвращает
текущее состояние раскрывающегося элемента
gtk_expander_set_label ()
void gtk_expander_set_label (GtkExpander *expander,const char *label);
Устанавливает текст метки раскрывающегося элемента на label.
Это также очистит все ранее установленные метки.
Параметры
expander | виджет GtkExpander | |
label | строка. | [nullable] |
gtk_expander_get_label ()
const char *
gtk_expander_get_label (GtkExpander *expander); Извлекает текст виджета метки, включая любые вложенные подчеркивания, указывающие на мнемоники, и Pango-разметку, как установлено функцией gtk_expander_set_label(). Если текст метки не был установлен, возвращаемое значение будет NULL. Так будет в случае, если вы создаёте пустую кнопку с помощью gtk_button_new() для использования в качестве контейнера.
Обратите внимание, что эта функция работала по-другому в версиях до 2.14 и раньше возвращала текст метки без вложенных подчеркиваний, указывающих на мнемоники и Pango-разметку. Эту проблему можно избежать, извлекая текст метки непосредственно из виджета метки.
Параметры
expander | виджет GtkExpander |
Возвращает
текст виджета метки. Эта строка принадлежит виджету и не должна изменяться или освобождаться.
[nullable]
gtk_expander_set_use_underline ()
void gtk_expander_set_use_underline (GtkExpander *expander,gboolean use_underline);
Если true, подчеркнутый текст метки раскрывающегося элемента указывает, что следующий символ должен использоваться в качестве сочетания клавиш мнемоники.
Параметры
expander | виджет GtkExpander | |
use_underline |
|
gtk_expander_get_use_underline ()
gboolean
gtk_expander_get_use_underline (GtkExpander *expander); Возвращает, указывает ли вложенное подчеркивание в метке раскрывающегося элемента на мнемонику. См. gtk_expander_set_use_underline().
Параметры
expander | виджет GtkExpander |
Возвращает
TRUE если вложенное подчеркивание в метке раскрывающегося элемента указывает на сочетания клавиш мнемоники
gtk_expander_set_use_markup ()
void gtk_expander_set_use_markup (GtkExpander *expander,gboolean use_markup);
Устанавливает, содержит ли текст метки разметку в языке разметки текста Pango. См. gtk_label_set_markup().
Параметры
expander | виджет GtkExpander | |
use_markup |
|
gtk_expander_get_use_markup ()
gboolean
gtk_expander_get_use_markup (GtkExpander *expander); Возвращает, интерпретируется ли текст метки как разметка с помощью языка разметки текста Pango. См. gtk_expander_set_use_markup().
Параметры
expander | виджет GtkExpander |
Возвращает
TRUE если текст метки будет проанализирован на предмет разметки
gtk_expander_set_label_widget ()
void gtk_expander_set_label_widget (GtkExpander *expander,GtkWidget *label_widget);
Устанавливает виджет метки для раскрывающегося элемента. Это виджет, который будет отображаться вместе со стрелкой раскрывающегося элемента.
Параметры
expander | виджет GtkExpander | |
label_widget | новый виджет метки. | [nullable] |
gtk_expander_get_label_widget ()
GtkWidget *
gtk_expander_get_label_widget (GtkExpander *expander); Возвращает виджет метки для рамки. См. gtk_expander_set_label_widget().
Параметры
expander | виджет GtkExpander |
Возвращает
виджет метки или NULL, если его нет.
[nullable][transfer none]
gtk_expander_set_resize_toplevel ()
void gtk_expander_set_resize_toplevel (GtkExpander *expander,gboolean resize_toplevel);
Устанавливает, будет ли раскрывающийся элемент изменять размер родительского виджета при изменении размера и сворачивании.
Параметры
expander | ||
resize_toplevel | будет ли меняться размер родительского элемента |
gtk_expander_get_resize_toplevel ()
gboolean
gtk_expander_get_resize_toplevel (GtkExpander *expander); Возвращает значение, определяющее, будет ли раскрывающийся элемент изменять размер родительского виджета при изменении размера и сворачивании.
Параметры
expander |
Возвращает
настройка «изменение размера родительского элемента».
gtk_expander_set_child ()
void gtk_expander_set_child (GtkExpander *expander,GtkWidget *child);
Устанавливает дочерний виджет для expander.
Параметры
expander | ||
child | дочерний виджет. | [allow-none] |
gtk_expander_get_child ()
GtkWidget *
gtk_expander_get_child (GtkExpander *expander); Получает дочерний виджет для expander.
Параметры
expander |
Возвращает
дочерний виджет для expander .
[nullable][transfer none]
Типы и значения
GtkExpander
typedef struct _GtkExpander GtkExpander;
Подробное описание свойств
Свойство “expanded”
“expanded” gboolean
Открыт ли раскрывающийся элемент для отображения дочернего виджета.
Владелец: GtkExpander
Флаги: Чтение / Запись / Создание
Значение по умолчанию: FALSE
Свойство “label”
“label” char *
Текст метки раскрывающегося элемента.
Владелец: GtkExpander
Флаги: Чтение / Запись / Создание
Значение по умолчанию: NULL
Свойство “label-widget”
“label-widget” GtkWidget *
Виджет для отображения вместо обычной метки раскрывающегося элемента.
Владелец: GtkExpander
Флаги: Чтение / Запись
Свойство “resize-toplevel”
“resize-toplevel” gboolean
Если это свойство TRUE, раскрывающийся элемент будет изменять размер родительского виджета при раскрытии и сворачивании.
Владелец: GtkExpander
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “use-markup”
“use-markup” gboolean
Текст метки включает разметку XML. См. pango_parse_markup().
Владелец: GtkExpander
Флаги: Чтение / Запись / Создание
Значение по умолчанию: FALSE
Свойство “use-underline”
“use-underline” gboolean
Если установлено, подчеркнутый текст указывает, что следующий символ используется для сочетания клавиш.
Владелец: GtkExpander
Флаги: Чтение / Запись / Создание
Значение по умолчанию: FALSE
Подробное описание сигналов
Сигнал “activate”
void user_function (GtkExpander *expander, gpointer user_data)
Активирует GtkExpander.
Параметры
expander | раскрывающийся элемент, который испустил сигнал | |
user_data | данные пользователя, заданные при подключении обработчика сигналов. |
Флаги: Действие
© 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/GtkExpander.html