GtkExpander
GtkExpander — Контейнер, который может скрывать своё содержимое
Функции
Свойства
| gboolean | expanded | Чтение / Запись / Создание |
| gchar * | label | Чтение / Запись / Создание |
| gboolean | label-fill | Чтение / Запись / Создание |
| GtkWidget * | label-widget | Чтение / Запись |
| gboolean | resize-toplevel | Чтение / Запись |
| gint | spacing | Чтение / Запись |
| gboolean | use-markup | Чтение / Запись / Создание |
| gboolean | use-underline | Чтение / Запись / Создание |
Стилизованные свойства
| gint | expander-size | Чтение |
| gint | expander-spacing | Чтение |
Типы и значения
| 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-узлы
expander = gtk_expander_new_with_mnemonic ("_More Options"); g_signal_connect (expander, "notify::expanded", G_CALLBACK (expander_callback), NULL); ... 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 } }
GtkExpander имеет три CSS-узла: основной узел с именем expander, подчинённый узел с именем title и узел под ним с именем arrow. Ни один из них не использует классы стилей.
Функции
gtk_expander_new ()
GtkWidget *
gtk_expander_new (const gchar *label); Создаёт новый раскрывающийся элемент, используя label в качестве текста метки.
Параметры
label | текст метки |
Возвращаемое значение
новый виджет GtkExpander.
С версии: 2.4
gtk_expander_new_with_mnemonic ()
GtkWidget *
gtk_expander_new_with_mnemonic (const gchar *label); Создаёт новый раскрывающийся элемент, используя label в качестве текста метки. Если символы в label предваряются нижним подчёркиванием, они подчёркиваются. Если вам нужен символ нижнего подчёркивания в метке, используйте "\_\_" (два нижних подчёркивания). Первый подчёркнутый символ представляет собой сочетание клавиш, называемое мнемоникой. Нажатие Alt и этой клавиши активирует кнопку.
Параметры
label | текст метки с подчёркиванием перед символом мнемоники. | [allow-none] |
Возвращаемое значение
новый виджет GtkExpander.
С версии: 2.4
gtk_expander_set_expanded ()
void gtk_expander_set_expanded (GtkExpander *expander,gboolean expanded);
Устанавливает состояние раскрывающегося элемента. Установите в значение TRUE, если вы хотите отобразить дочерний виджет, и в значение FALSE, если вы хотите скрыть дочерний виджет.
Параметры
expander | виджет GtkExpander | |
expanded | отображается ли дочерний виджет |
С версии: 2.4
gtk_expander_get_expanded ()
gboolean
gtk_expander_get_expanded (GtkExpander *expander); Запрашивает состояние GtkExpander и возвращает его текущее состояние. Возвращает TRUE, если дочерний виджет отображается.
См. gtk_expander_set_expanded().
Параметры
expander | виджет GtkExpander |
Возвращаемое значение
текущее состояние раскрывающегося элемента
С версии: 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 | расстояние между раскрывающимся элементом и дочерним в пикселях |
С версии: 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 |
Возвращаемое значение
расстояние между раскрывающимся элементом и дочерним
С версии: 2.4
gtk_expander_set_label ()
void gtk_expander_set_label (GtkExpander *expander,const gchar *label);
Устанавливает текст метки раскрывающегося элемента на label.
Это также очистит любые ранее установленные метки.
Параметры
expander | виджет GtkExpander | |
label | строка. | [allow-none] |
С версии: 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 |
Возвращаемое значение
Текст виджета метки. Эта строка принадлежит виджету и не должна изменяться или освобождаться.
С версии: 2.4
gtk_expander_set_use_underline ()
void gtk_expander_set_use_underline (GtkExpander *expander,gboolean use_underline);
Если значение истинно, подчеркнутый текст метки раскрывающегося элемента указывает, что следующий символ должен использоваться в качестве мнемонической клавиши.
Параметры
expander | виджет GtkExpander | |
use_underline |
|
С версии: 2.4
gtk_expander_get_use_underline ()
gboolean
gtk_expander_get_use_underline (GtkExpander *expander); Возвращает значение, указывающее, является ли встроенное подчеркивание в метке раскрывающегося элемента индикатором мнемоники. См. gtk_expander_set_use_underline().
Параметры
expander | виджет GtkExpander |
Возвращаемое значение
TRUE, если встроенное подчеркивание в метке раскрывающегося элемента указывает на мнемонические сочетания клавиш
С версии: 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 |
|
С: 2.4
gtk_expander_get_use_markup ()
gboolean
gtk_expander_get_use_markup (GtkExpander *expander); Возвращает, интерпретируется ли текст метки как разметка с помощью языка разметки текста Pango. См. gtk_expander_set_use_markup().
Параметры
expander | объект GtkExpander |
Возвращаемое значение
TRUE, если текст метки будет распарсен на разметку
С: 2.4
gtk_expander_set_label_widget ()
void gtk_expander_set_label_widget (GtkExpander *expander,GtkWidget *label_widget);
Устанавливает виджет метки для расширителя. Это виджет, который будет отображаться встроеным рядом со стрелкой расширителя.
Параметры
expander | объект GtkExpander | |
label_widget | новый виджет метки. | [allow-none] |
С: 2.4
gtk_expander_get_label_widget ()
GtkWidget *
gtk_expander_get_label_widget (GtkExpander *expander); Возвращает виджет метки для рамки. См. gtk_expander_set_label_widget().
Параметры
expander | объект GtkExpander |
С: 2.4
gtk_expander_set_label_fill ()
void gtk_expander_set_label_fill (GtkExpander *expander,gboolean label_fill);
Устанавливает, должен ли виджет метки заполнять всё доступное горизонтальное пространство, выделенное для expander .
Параметры
expander | объект GtkExpander | |
label_fill |
|
С: 2.22
gtk_expander_get_label_fill ()
gboolean
gtk_expander_get_label_fill (GtkExpander *expander); Возвращает, заполнит ли виджет метки всё доступное горизонтальное пространство, выделенное для expander .
Параметры
expander | объект GtkExpander |
Возвращаемое значение
TRUE, если виджет метки заполнит всё доступное горизонтальное пространство
С: 2.22
gtk_expander_set_resize_toplevel ()
void gtk_expander_set_resize_toplevel (GtkExpander *expander,gboolean resize_toplevel);
Устанавливает, будет ли расширитель изменять размер виджета верхнего уровня, содержащего расширитель при изменении размера и сворачивании.
Параметры
expander | объект GtkExpander | |
resize_toplevel | необходимо ли изменять размер верхнего уровня |
С: 3.2
gtk_expander_get_resize_toplevel ()
gboolean
gtk_expander_get_resize_toplevel (GtkExpander *expander); Возвращает, будет ли расширитель изменять размер виджета верхнего уровня, содержащего расширитель при изменении размера и сворачивании.
Параметры
expander | объект GtkExpander |
Возвращаемое значение
значение "изменить размер верхнего уровня".
С: 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
Открыт ли расширитель для отображения дочернего виджета.
Флаги: Чтение/Запись/Конструктор
Значение по умолчанию: FALSE
Свойство “label”
“label” gchar *
Текст метки расширителя.
Флаги: Чтение/Запись/Конструктор
Значение по умолчанию: NULL
Свойство “label-fill”
“label-fill” gboolean
Заполняет ли виджет метки всё доступное горизонтальное пространство.
Флаги: Чтение/Запись/Конструктор
Значение по умолчанию: FALSE
Свойство “label-widget”
“label-widget” GtkWidget *
Виджет для отображения вместо обычной метки расширителя.
Флаги: Чтение/Запись
Свойство “resize-toplevel”
“resize-toplevel” gboolean
Если это свойство равно TRUE, расширитель будет изменять размер виджета верхнего уровня, содержащего расширитель при раскрытии и сворачивании.
Флаги: Чтение/Запись
Значение по умолчанию: FALSE
С: 3.2
Свойство “spacing”
“spacing” gint
Пространство между меткой и дочерним элементом при раскрытии расширителя.
GtkExpander:spacing устарело с версии 3.20 и не должно использоваться в новом коде.
Это свойство устарело и игнорируется. Используйте отступы у дочернего элемента вместо этого.
Флаги: Чтение/Запись
Допустимые значения: >= 0
Значение по умолчанию: 0
Свойство “use-markup”
“use-markup” gboolean
Текст метки включает XML-разметку. См. pango_parse_markup().
Флаги: Чтение/Запись/Конструктор
Значение по умолчанию: FALSE
Свойство “use-underline”
“use-underline” gboolean
Если установлено, подчеркивание в тексте указывает, что следующий символ должен использоваться в качестве сочетания клавиш.
Флаги: Чтение/Запись/Конструктор
Значение по умолчанию: FALSE
Подробности свойств стиля
Свойство стиля “expander-size”
“expander-size” gint
Размер стрелки раскрывающегося элемента.
GtkExpander:expander-size устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте CSS min-width и min-height вместо этого.
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 10
Свойство стиля “expander-spacing”
“expander-spacing” gint
Отступ вокруг стрелки раскрывающегося элемента.
GtkExpander:expander-spacing устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте CSS отступы вместо этого, значение этого свойства стиля игнорируется.
Флаги: Чтение
Допустимые значения: >= 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.22/GtkExpander.html