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_spacing () |
| gint | gtk_expander_get_spacing () |
| void | gtk_expander_set_label () |
| const gchar * | 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_label_fill () |
| gboolean | gtk_expander_get_label_fill () |
| void | gtk_expander_set_resize_toplevel () |
| gboolean | gtk_expander_get_resize_toplevel () |
Свойства
| gboolean | expanded | Чтение/Запись/Конструктор |
| char * | label | Чтение/Запись/Конструктор |
| gboolean | label-fill | Чтение/Запись/Конструктор |
| GtkWidget * | label-widget | Чтение/Запись |
| gboolean | resize-toplevel | Чтение/Запись |
| int | spacing | Чтение/Запись |
| gboolean | use-markup | Чтение/Запись/Конструктор |
| gboolean | use-underline | Чтение/Запись/Конструктор |
Стилизованные свойства
| int | expander-size | Чтение |
| int | expander-spacing | Чтение |
Сигналы
| void | activate | Действие |
Типы и значения
| struct | GtkExpander |
| struct | GtkExpanderClass |
Иерархия объектов
GObject
╰── GInitiallyUnowned
╰── GtkWidget
╰── GtkContainer
╰── GtkBin
╰── GtkExpander
Реализованные интерфейсы
GtkExpander реализует AtkImplementorIface и GtkBuildable.
Включения
#include <gtk/gtk.h>
Описание
С помощью GtkExpander пользователь может скрывать или показывать его дочерний элемент, нажав на треугольник-расширитель, похожий на треугольники в GtkTreeView.
Обычно вы используете расширитель, как любой другой потомок GtkBin; создайте дочерний виджет и используйте gtk_container_add() для его добавления к расширителю. При переключении состояния расширителя он автоматически спрячет или покажет дочерний элемент.
Особое использование
В некоторых ситуациях вы можете захотеть самостоятельно показывать и скрывать расширенный виджет, например, когда нужно создать виджет во время расширения. В этом случае создайте GtkExpander, но не добавляйте к нему дочерний элемент. Виджет расширителя имеет свойство “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 и узел под ним с именем arrow. У стрелки расширителя, отображающего дочерний элемент, добавляется псевдокласс :checked.
Функции
gtk_expander_new ()
GtkWidget *
gtk_expander_new (const gchar *label); Создаёт новый раскрывающийся элемент, используя label в качестве текста метки.
Параметры
label | текст метки. | [nullable] |
Возвращает
новый виджет GtkExpander.
Since: 2.4
gtk_expander_new_with_mnemonic ()
GtkWidget *
gtk_expander_new_with_mnemonic (const gchar *label); Создаёт новый раскрывающийся элемент, используя label в качестве текста метки. Если символы в label предваряются нижним подчеркиванием, они подчеркиваются. Если вам нужен буквальный символ нижнего подчеркивания в метке, используйте «__» (два нижних подчеркивания). Первый подчеркнутый символ представляет собой клавишу быстрого вызова (мнемонику). Нажатие клавиши Alt и этой клавиши активирует кнопку.
Параметры
label | текст метки с нижним подчеркиванием перед символом мнемоники. | [nullable] |
Возвращает
новый виджет GtkExpander.
Since: 2.4
gtk_expander_set_expanded ()
void gtk_expander_set_expanded (GtkExpander *expander,gboolean expanded);
Устанавливает состояние раскрывающегося элемента. Установите в TRUE, если вы хотите отобразить дочерний виджет, и FALSE, если вы хотите скрыть дочерний виджет.
Параметры
expander | элемент GtkExpander | |
expanded | отображается ли дочерний виджет |
Since: 2.4
gtk_expander_get_expanded ()
gboolean
gtk_expander_get_expanded (GtkExpander *expander); Опрашивает элемент GtkExpander и возвращает его текущее состояние. Возвращает TRUE, если дочерний виджет отображён.
См. gtk_expander_set_expanded().
Параметры
expander | элемент GtkExpander |
Возвращает
текущее состояние раскрывающегося элемента
Since: 2.4
gtk_expander_set_spacing ()
void gtk_expander_set_spacing (GtkExpander *expander,gint spacing);
gtk_expander_set_spacing устарел начиная с версии 3.20 и не должен использоваться в новом коде.
Используйте отступы для дочернего элемента вместо этого.
Устанавливает поле отступа expander, которое представляет собой количество пикселей между раскрывающимся элементом и дочерним элементом.
Параметры
expander | элемент GtkExpander | |
spacing | расстояние между раскрывающимся элементом и дочерним элементом в пикселях |
Since: 2.4
gtk_expander_get_spacing ()
gint
gtk_expander_get_spacing (GtkExpander *expander); gtk_expander_get_spacing устарел начиная с версии 3.20 и не должен использоваться в новом коде.
Используйте отступы для дочернего элемента вместо этого.
Получает значение, установленное с помощью gtk_expander_set_spacing().
Параметры
expander | элемент GtkExpander |
Возвращает
расстояние между раскрывающимся элементом и дочерним элементом
Since: 2.4
gtk_expander_set_label ()
void gtk_expander_set_label (GtkExpander *expander,const gchar *label);
Устанавливает текст метки раскрывающегося элемента на label.
Это также очистит любые ранее установленные метки.
Параметры
expander | элемент GtkExpander | |
label | строка. | [nullable] |
Since: 2.4
gtk_expander_get_label ()
const gchar *
gtk_expander_get_label (GtkExpander *expander); Извлекает текст из виджета метки, включая любые встроенные нижние подчеркивания, указывающие мнемоники и разметку Pango, как задано с помощью gtk_expander_set_label(). Если текст метки не был задан, возвращаемое значение будет NULL. Это будет случай, если вы создали пустую кнопку с помощью gtk_button_new() для использования в качестве контейнера.
Обратите внимание, что эта функция работала по-другому в версиях до 2.14 и ранее возвращала текст метки без встроенных нижних подчеркиваний, указывающих мнемоники и разметку Pango. Эту проблему можно избежать, извлекая текст метки напрямую из виджета метки.
Параметры
expander | элемент GtkExpander |
Возвращает
текст виджета метки. Эта строка принадлежит виджету и не должна изменяться или освобождаться.
[nullable]
Since: 2.4
gtk_expander_set_use_underline ()
void gtk_expander_set_use_underline (GtkExpander *expander,gboolean use_underline);
Если true, нижнее подчеркивание в тексте метки раскрывающегося элемента указывает на то, что следующий символ должен использоваться для клавиши мнемоники.
Параметры
expander | элемент GtkExpander | |
use_underline |
|
Since: 2.4
gtk_expander_get_use_underline ()
gboolean
gtk_expander_get_use_underline (GtkExpander *expander); Возвращает, указывает ли встроенное нижнее подчеркивание в метке раскрывающегося элемента на мнемонику. См. gtk_expander_set_use_underline().
Параметры
expander | элемент GtkExpander |
Возвращает
TRUE если встроенное нижнее подчеркивание в метке раскрывающегося элемента указывает на клавиши быстрого вызова мнемоники
Since: 2.4
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 |
|
Since: 2.4
gtk_expander_get_use_markup ()
gboolean
gtk_expander_get_use_markup (GtkExpander *expander); Возвращает, интерпретируется ли текст метки как разметка языка Pango. См. gtk_expander_set_use_markup().
Параметры
expander |
Возвращает
TRUE , если текст метки будет проанализирован на предмет разметки
С: 2.4
gtk_expander_set_label_widget ()
void gtk_expander_set_label_widget (GtkExpander *expander,GtkWidget *label_widget);
Устанавливает виджет метки для раскрывающегося элемента. Это виджет, который будет отображаться вместе со стрелкой раскрывающегося элемента.
Параметры
expander | ||
label_widget | новый виджет метки. | [nullable] |
С: 2.4
gtk_expander_get_label_widget ()
GtkWidget *
gtk_expander_get_label_widget (GtkExpander *expander); Возвращает виджет метки для рамки. См. gtk_expander_set_label_widget().
Параметры
expander |
Возвращает
виджет метки или NULL , если его нет.
[nullable][transfer none]
С: 2.4
gtk_expander_set_label_fill ()
void gtk_expander_set_label_fill (GtkExpander *expander,gboolean label_fill);
Устанавливает, должен ли виджет метки заполнять всё доступное горизонтальное пространство, выделенное для expander .
Обратите внимание, что эта функция не оказывает никакого влияния с версии 3.20.
Параметры
expander | ||
label_fill |
|
С: 2.22
gtk_expander_get_label_fill ()
gboolean
gtk_expander_get_label_fill (GtkExpander *expander); Возвращает, будет ли виджет метки заполнять всё доступное горизонтальное пространство, выделенное для expander .
Параметры
expander |
Возвращает
TRUE , если виджет метки будет заполнять всё доступное горизонтальное пространство
С: 2.22
gtk_expander_set_resize_toplevel ()
void gtk_expander_set_resize_toplevel (GtkExpander *expander,gboolean resize_toplevel);
Устанавливает, будет ли раскрывающийся элемент изменять размер виджета верхнего уровня, содержащего раскрывающийся элемент, при изменении размера и сворачивании.
Параметры
expander | ||
resize_toplevel | нужно ли изменять размер верхнего уровня |
С: 3.2
gtk_expander_get_resize_toplevel ()
gboolean
gtk_expander_get_resize_toplevel (GtkExpander *expander); Возвращает, будет ли раскрывающийся элемент изменять размер виджета верхнего уровня, содержащего раскрывающийся элемент, при изменении размера и сворачивании.
Параметры
expander |
Возвращает
значение «изменить размер верхнего уровня».
С: 3.2
Типы и значения
struct GtkExpander
struct GtkExpander;
struct GtkExpanderClass
struct GtkExpanderClass {
GtkBinClass parent_class;
/* Key binding signal; to get notification on the expansion
* state connect to notify:expanded.
*/
void (* activate) (GtkExpander *expander);
};
Члены
| Сигнал сочетания клавиш генерируется, когда пользователь нажимает клавишу Enter. |
Подробности свойств
Свойство “expanded”
“expanded” gboolean
Раскрыт ли раскрывающийся элемент для отображения дочернего виджета.
Владелец: GtkExpander
Флаги: Чтение/Запись/Конструктор
Значение по умолчанию: FALSE
Свойство “label”
“label” char *
Текст метки раскрывающегося элемента.
Владелец: GtkExpander
Флаги: Чтение/Запись/Конструктор
Значение по умолчанию: NULL
Свойство “label-fill”
“label-fill” gboolean
Заполняет ли виджет метки всё доступное горизонтальное пространство.
Обратите внимание, что это свойство игнорируется с версии 3.20.
Владелец: GtkExpander
Флаги: Чтение/Запись/Конструктор
Значение по умолчанию: FALSE
Свойство “label-widget”
“label-widget” GtkWidget *
Виджет для отображения вместо обычной метки раскрывающегося элемента.
Владелец: GtkExpander
Флаги: Чтение/Запись
Свойство “resize-toplevel”
“resize-toplevel” gboolean
Когда это свойство TRUE, раскрывающийся элемент будет изменять размер виджета верхнего уровня, содержащего раскрывающийся элемент, при раскрытии и сворачивании.
Владелец: GtkExpander
Флаги: Чтение/Запись
Значение по умолчанию: FALSE
С: 3.2
Свойство “spacing”
“spacing” int
Пробел между меткой и дочерним элементом при раскрытии раскрывающегося элемента.
GtkExpander:spacing устарело с версии 3.20 и не должно использоваться в новом коде.
Это свойство устарело и игнорируется. Используйте отступы дочернего элемента вместо него.
Владелец: GtkExpander
Флаги: Чтение/Запись
Допустимые значения: >= 0
Значение по умолчанию: 0
Свойство “use-markup”
“use-markup” gboolean
Текст метки включает разметку XML. См. pango_parse_markup().
Владелец: GtkExpander
Флаги: Чтение/Запись/Конструктор
Значение по умолчанию: FALSE
Свойство “use-underline”
“use-underline” gboolean
Если установлено, подчеркивание в тексте указывает на то, что следующий символ должен использоваться для клавиши ускоренного доступа.
Владелец: GtkExpander
Флаги: Чтение/Запись/Конструктор
Значение по умолчанию: FALSE
Подробности свойств стиля
Свойство стиля “expander-size”
“expander-size” int
Размер стрелки раскрывающегося элемента.
GtkExpander:expander-size устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте CSS min-width и min-height вместо этого.
Владелец: GtkExpander
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 10
Свойство стиля “expander-spacing”
“expander-spacing” int
Пробел вокруг стрелки раскрывающегося элемента.
GtkExpander:expander-spacing устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте CSS отступы вместо этого, значение этого свойства стиля игнорируется.
Владелец: GtkExpander
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 2
Подробности сигналов
© 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/GtkExpander.html