Spec-Zone.ru › GTK 4.0

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 Действие

Типы и значения

GtkExpander

Иерархия объектов

    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

TRUE если подчеркивания в тексте указывают на мнемоники

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

TRUE если текст метки должен быть проанализирован на предмет разметки

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

a GtkExpander

resize_toplevel

будет ли меняться размер родительского элемента

gtk_expander_get_resize_toplevel ()

gboolean
gtk_expander_get_resize_toplevel (GtkExpander *expander);

Возвращает значение, определяющее, будет ли раскрывающийся элемент изменять размер родительского виджета при изменении размера и сворачивании.

Параметры

expander

a GtkExpander

Возвращает

настройка «изменение размера родительского элемента».

gtk_expander_set_child ()

void
gtk_expander_set_child (GtkExpander *expander,
                        GtkWidget *child);

Устанавливает дочерний виджет для expander.

Параметры

expander

a GtkExpander

child

дочерний виджет.

[allow-none]

gtk_expander_get_child ()

GtkWidget *
gtk_expander_get_child (GtkExpander *expander);

Получает дочерний виджет для expander.

Параметры

expander

a GtkExpander

Возвращает

дочерний виджет для expander .

[nullable][transfer none]

Типы и значения

GtkExpander

typedef struct _GtkExpander GtkExpander;

Подробное описание свойств

Свойство “child”

  “child”                    GtkWidget *

Дочерний виджет.

Владелец: 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API