Spec-Zone.ru › GTK 3.22

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 Чтение / Запись / Создание
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 Чтение

Сигналы

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-узлы

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

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

С версии: 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

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

С: 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

Возвращаемое значение

виджет метки или NULL, если его нет.

[nullable][transfer none]

С: 2.4

gtk_expander_set_label_fill ()

void
gtk_expander_set_label_fill (GtkExpander *expander,
                             gboolean label_fill);

Устанавливает, должен ли виджет метки заполнять всё доступное горизонтальное пространство, выделенное для expander .

Параметры

expander

объект GtkExpander

label_fill

TRUE, если метка должна заполнять всё доступное горизонтальное пространство

С: 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);
};

Члены

activate ()

Сигнал события нажатия клавиши 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

Подробности сигналов

Сигнал “activate”

void
user_function (GtkExpander *expander,
               gpointer     user_data)

Флаги: Действие

© 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

Spec-Zone.ru

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