Spec-Zone.ru › GTK 3.22

GtkStack

GtkStack — Стек-контейнер

Функции

GtkWidget * gtk_stack_new ()
void gtk_stack_add_named ()
void gtk_stack_add_titled ()
GtkWidget * gtk_stack_get_child_by_name ()
void gtk_stack_set_visible_child ()
GtkWidget * gtk_stack_get_visible_child ()
void gtk_stack_set_visible_child_name ()
const gchar * gtk_stack_get_visible_child_name ()
void gtk_stack_set_visible_child_full ()
void gtk_stack_set_homogeneous ()
gboolean gtk_stack_get_homogeneous ()
void gtk_stack_set_hhomogeneous ()
gboolean gtk_stack_get_hhomogeneous ()
void gtk_stack_set_vhomogeneous ()
gboolean gtk_stack_get_vhomogeneous ()
void gtk_stack_set_transition_duration ()
guint gtk_stack_get_transition_duration ()
void gtk_stack_set_transition_type ()
GtkStackTransitionType gtk_stack_get_transition_type ()
gboolean gtk_stack_get_transition_running ()
gboolean gtk_stack_get_interpolate_size ()
void gtk_stack_set_interpolate_size ()

Свойства

gboolean hhomogeneous Чтение / Запись
gboolean homogeneous Чтение / Запись
gboolean interpolate-size Чтение / Запись
guint transition-duration Чтение / Запись
gboolean transition-running Чтение
GtkStackTransitionType transition-type Чтение / Запись
gboolean vhomogeneous Чтение / Запись
GtkWidget * visible-child Чтение / Запись
gchar * visible-child-name Чтение / Запись

Свойства дочерних элементов

gchar * имя-пиктограммы Чтение / Запись
gchar * имя Чтение / Запись
gboolean требует-внимания Чтение / Запись
gint позиция Чтение / Запись
gchar * заголовок Чтение / Запись

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

struct GtkStack
enum ТипПереходаGtkStack

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

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkStack

Реализованные интерфейсы

GtkStack реализует AtkImplementorIface и GtkBuildable.

Файлы заголовков

#include <gtk/gtk.h>

Описание

Виджет GtkStack — это контейнер, который отображает только один из своих дочерних элементов в данный момент. В отличие от GtkNotebook, GtkStack не предоставляет способа для пользователей изменять отображаемый дочерний элемент. Вместо этого, для этой функциональности можно использовать виджет GtkStackSwitcher вместе с GtkStack.

Переходы между страницами могут быть анимированы как слайды или затухания. Это можно контролировать с помощью gtk_stack_set_transition_type(). Эти анимации учитывают настройку “gtk-enable-animations”.

Виджет GtkStack был добавлен в GTK+ 3.10.

Узлы CSS

GtkStack имеет один узел CSS под именем stack.

Функции

gtk_stack_new ()

GtkWidget *
gtk_stack_new (void);

Создаёт новый контейнер GtkStack.

Возвращает

новый GtkStack

С версии: 3.10

gtk_stack_add_named ()

void
gtk_stack_add_named (GtkStack *stack,
                     GtkWidget *child,
                     const gchar *name);

Добавляет дочерний элемент в stack. Дочерний элемент идентифицируется по name.

Параметры

stack

объект GtkStack

child

виджет для добавления

name

имя для child

С версии: 3.10

gtk_stack_add_titled ()

void
gtk_stack_add_titled (GtkStack *stack,
                      GtkWidget *child,
                      const gchar *name,
                      const gchar *title);

Добавляет дочерний элемент в stack. Дочерний элемент идентифицируется по name. title будет использовано GtkStackSwitcher для представления child на вкладке, поэтому оно должно быть коротким.

Параметры

stack

объект GtkStack

child

виджет для добавления

name

имя для child

title

человекопонятное имя для child

С версии: 3.10

gtk_stack_get_child_by_name ()

GtkWidget *
gtk_stack_get_child_by_name (GtkStack *stack,
                             const gchar *name);

Находит дочерний элемент GtkStack с указанным именем. Возвращает NULL, если дочернего элемента с таким именем нет.

Параметры

stack

объект GtkStack

name

имя дочернего элемента для поиска

Возвращает

требуемый дочерний элемент GtkStack.

[transfer none][nullable]

С версии: 3.12

gtk_stack_set_visible_child ()

void
gtk_stack_set_visible_child (GtkStack *stack,
                             GtkWidget *child);

Устанавливает child в качестве видимого дочернего элемента stack.

Если child отличается от текущего видимого дочернего элемента, переход между ними будет анимирован с текущим типом перехода stack.

Обратите внимание, что виджет child должен быть видимым (см. gtk_widget_show()), чтобы стать видимым дочерним элементом stack.

Параметры

stack

объект GtkStack

child

дочерний элемент stack

С версии: 3.10

gtk_stack_get_visible_child ()

GtkWidget *
gtk_stack_get_visible_child (GtkStack *stack);

Возвращает текущий видимый дочерний элемент stack или NULL, если видимых дочерних элементов нет.

Параметры

stack

объект GtkStack

Возвращает

видимый дочерний элемент GtkStack.

[transfer none][nullable]

С версии: 3.10

gtk_stack_set_visible_child_name ()

void
gtk_stack_set_visible_child_name (GtkStack *stack,
                                  const gchar *name);

Делает видимым дочерний элемент с заданным именем.

Если child отличается от текущего видимого дочернего элемента, переход между ними будет анимирован с текущим типом перехода stack.

Обратите внимание, что виджет дочернего элемента должен быть видимым (см. gtk_widget_show()), чтобы стать видимым дочерним элементом stack.

Параметры

stack

объект GtkStack

name

имя дочернего элемента, который необходимо сделать видимым

С версии: 3.10

gtk_stack-get-visible-child-name ()

const gchar *
gtk_stack_get_visible_child_name (GtkStack *stack);

Возвращает имя текущего видимого дочернего элемента stack или NULL, если видимого дочернего элемента нет.

Параметры

stack

объект GtkStack

Возвращает

имя видимого дочернего элемента GtkStack.

[transfer none][nullable]

С версии: 3.10

gtk_stack_set_visible_child_full ()

void
gtk_stack_set_visible_child_full (GtkStack *stack,
                                  const gchar *name,
                                  GtkStackTransitionType transition);

Делает видимым дочерний элемент с заданным именем.

Обратите внимание, что виджет дочернего элемента должен быть видимым (см. gtk_widget_show()), чтобы стать видимым дочерним элементом stack.

Параметры

stack

объект GtkStack

name

имя дочернего элемента, который необходимо сделать видимым

transition

тип перехода

С версии: 3.10

gtk_stack_set_homogeneous ()

void
gtk_stack_set_homogeneous (GtkStack *stack,
                           gboolean homogeneous);

Устанавливает GtkStack в однородный или разнородный режим. Если он однородный, GtkStack запросит одинаковый размер для всех своих дочерних элементов. Если нет, размер стека может измениться, когда другой дочерний элемент станет видимым.

Начиная с версии 3.16, однородность может быть настроена отдельно для горизонтального и вертикального размера с помощью свойств «hhomogeneous» и «vhomogeneous».

Параметры

stack

a GtkStack

homogeneous

TRUE для установки stack в однородный режим

С версии: 3.10

gtk_stack_get_homogeneous ()

gboolean
gtk_stack_get_homogeneous (GtkStack *stack);

Получает, является ли stack однородным. См. gtk_stack_set_homogeneous().

Параметры

stack

a GtkStack

Возвращает

является ли stack однородным.

С версии: 3.10

gtk_stack_set_hhomogeneous ()

void
gtk_stack_set_hhomogeneous (GtkStack *stack,
                            gboolean hhomogeneous);

Устанавливает GtkStack в горизонтально однородный или разнородный режим. Если он однородный, GtkStack запросит одинаковую ширину для всех своих дочерних элементов. Если нет, ширина стека может измениться, когда другой дочерний элемент станет видимым.

Параметры

stack

a GtkStack

hhomogeneous

TRUE для установки stack в горизонтально однородный режим

С версии: 3.16

gtk_stack_get_hhomogeneous ()

gboolean
gtk_stack_get_hhomogeneous (GtkStack *stack);

Получает, является ли stack горизонтально однородным. См. gtk_stack_set_hhomogeneous().

Параметры

stack

a GtkStack

Возвращает

является ли stack горизонтально однородным.

С версии: 3.16

gtk_stack_set_vhomogeneous ()

void
gtk_stack_set_vhomogeneous (GtkStack *stack,
                            gboolean vhomogeneous);

Устанавливает GtkStack в вертикально однородный или разнородный режим. Если он однородный, GtkStack запросит одинаковую высоту для всех своих дочерних элементов. Если нет, высота стека может измениться, когда другой дочерний элемент станет видимым.

Параметры

stack

a GtkStack

vhomogeneous

TRUE для установки stack в вертикально однородный режим

С версии: 3.16

gtk_stack_get_vhomogeneous ()

gboolean
gtk_stack_get_vhomogeneous (GtkStack *stack);

Получает, является ли stack вертикально однородным. См. gtk_stack_set_vhomogeneous().

Параметры

stack

a GtkStack

Возвращает

является ли stack вертикально однородным.

С версии: 3.16

gtk_stack_set_transition_duration ()

void
gtk_stack_set_transition_duration (GtkStack *stack,
                                   guint duration);

Устанавливает продолжительность переходов между страницами в stack.

Параметры

stack

a GtkStack

duration

новая продолжительность в миллисекундах

С версии: 3.10

gtk_stack_get_transition_duration ()

guint
gtk_stack_get_transition_duration (GtkStack *stack);

Возвращает время (в миллисекундах) переходов между страницами в stack.

Параметры

stack

a GtkStack

Возвращает

продолжительность перехода

С версии: 3.10

gtk_stack_set_transition_type ()

void
gtk_stack_set_transition_type (GtkStack *stack,
                               GtkStackTransitionType transition);

Устанавливает тип анимации, который будет использоваться для переходов между страницами в stack. Доступные типы включают различные виды затемнений и слайдов.

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

Параметры

stack

a GtkStack

transition

новый тип перехода

С версии: 3.10

gtk_stack_get_transition_type ()

GtkStackTransitionType
gtk_stack_get_transition_type (GtkStack *stack);

Возвращает тип анимации, который будет использоваться для переходов между страницами в stack.

Параметры

stack

a GtkStack

Возвращает

текущий тип перехода для stack

С версии: 3.10

gtk_stack_get_transition_running ()

gboolean
gtk_stack_get_transition_running (GtkStack *stack);

Возвращает, находится ли stack в данный момент в процессе перехода с одной страницы на другую.

Параметры

stack

a GtkStack

Возвращает

TRUE если переход выполняется, FALSE в противном случае.

С версии: 3.12

gtk_stack_get_interpolate_size ()

gboolean
gtk_stack_get_interpolate_size (GtkStack *stack);

Возвращает, настроен ли GtkStack на интерполяцию размеров дочерних элементов при переключении страниц.

Параметры

stack

A GtkStack

Возвращает

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

С версии: 3.18

gtk_stack_set_interpolate_size ()

void
gtk_stack_set_interpolate_size (GtkStack *stack,
                                gboolean interpolate_size);

Устанавливает, будет ли stack интерполировать свой размер при изменении видимого дочернего элемента. Если свойство “interpolate-size” установлено в TRUE, stack будет интерполировать свой размер между текущим и тем, который он будет иметь после изменения видимого дочернего элемента, в соответствии с заданной длительностью перехода.

Параметры

stack

A GtkStack

interpolate_size

новое значение

С версии: 3.18

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

struct GtkStack

struct GtkStack;

enum GtkStackTransitionType

Эти перечисляемые значения описывают возможные переходы между страницами в виджете GtkStack.

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

Члены

GTK_STACK_TRANSITION_TYPE_NONE

Нет перехода

GTK_STACK_TRANSITION_TYPE_CROSSFADE

Перекрестное затухание

GTK_STACK_TRANSITION_TYPE_SLIDE_RIGHT

Слайд слева направо

GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT

Слайд справа налево

GTK_STACK_TRANSITION_TYPE_SLIDE_UP

Слайд снизу вверх

GTK_STACK_TRANSITION_TYPE_SLIDE_DOWN

Слайд сверху вниз

GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT_RIGHT

Слайд слева или справа в соответствии с порядком дочерних элементов

GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN

Слайд сверху вниз или снизу вверх в соответствии с порядком

GTK_STACK_TRANSITION_TYPE_OVER_UP

Закрыть старую страницу, сдвинув вверх. С версии 3.12

GTK_STACK_TRANSITION_TYPE_OVER_DOWN

Закрыть старую страницу, сдвинув вниз. С версии: 3.12

GTK_STACK_TRANSITION_TYPE_OVER_LEFT

Закрыть старую страницу, сдвинув влево. С версии: 3.12

GTK_STACK_TRANSITION_TYPE_OVER_RIGHT

Закрыть старую страницу, сдвинув вправо. С версии: 3.12

GTK_STACK_TRANSITION_TYPE_UNDER_UP

Открыть новую страницу, сдвинув вверх. С версии 3.12

GTK_STACK_TRANSITION_TYPE_UNDER_DOWN

Открыть новую страницу, сдвинув вниз. С версии: 3.12

GTK_STACK_TRANSITION_TYPE_UNDER_LEFT

Открыть новую страницу, сдвинув влево. С версии: 3.12

GTK_STACK_TRANSITION_TYPE_UNDER_RIGHT

Открыть новую страницу, сдвинув вправо. С версии: 3.12

GTK_STACK_TRANSITION_TYPE_OVER_UP_DOWN

Закрыть старую страницу, сдвинув вверх, или открыть новую страницу, сдвинув вниз, в зависимости от порядка. С версии: 3.12

GTK_STACK_TRANSITION_TYPE_OVER_DOWN_UP

Закрыть старую страницу, сдвинув вниз, или открыть новую страницу, сдвинув вверх, в зависимости от порядка. С версии: 3.14

GTK_STACK_TRANSITION_TYPE_OVER_LEFT_RIGHT

Закрыть старую страницу, сдвинув влево, или открыть новую страницу, сдвинув вправо, в зависимости от порядка. С версии: 3.14

GTK_STACK_TRANSITION_TYPE_OVER-RIGHT-LEFT

Закрыть старую страницу, сдвинув вправо, или открыть новую страницу, сдвинув влево, в зависимости от порядка. С версии: 3.14

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

Свойство “hhomogeneous”

  “hhomogeneous”             gboolean

TRUE, если стековый элемент выделяет одинаковую ширину для всех дочерних элементов.

Флаги: Чтение / Запись

Значение по умолчанию: TRUE

С: 3.16

Свойство “homogeneous”

  “homogeneous”              gboolean

Однородный размер.

Флаги: Чтение / Запись

Значение по умолчанию: TRUE

Свойство “interpolate-size”

  “interpolate-size”         gboolean

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

Флаги: Чтение / Запись

Значение по умолчанию: FALSE

Свойство “transition-duration”

  “transition-duration”      guint

Продолжительность анимации в миллисекундах.

Флаги: Чтение / Запись

Значение по умолчанию: 200

Свойство “transition-running”

  “transition-running”       gboolean

Указывает, выполняется ли в настоящее время переход.

Флаги: Чтение

Значение по умолчанию: FALSE

Свойство “transition-type”

  “transition-type”          GtkStackTransitionType

Тип анимации, используемой для перехода.

Флаги: Чтение / Запись

Значение по умолчанию: GTK_STACK_TRANSITION_TYPE_NONE

Свойство “vhomogeneous”

  “vhomogeneous”             gboolean

TRUE, если стековый элемент выделяет одинаковую высоту для всех дочерних элементов.

Флаги: Чтение / Запись

Значение по умолчанию: TRUE

С: 3.16

Свойство “visible-child”

  “visible-child”            GtkWidget *

Виджет, который в настоящее время отображается в стеке.

Флаги: Чтение / Запись

Свойство “visible-child-name”

  “visible-child-name”       gchar *

Имя виджета, который в настоящее время отображается в стеке.

Флаги: Чтение / Запись

Значение по умолчанию: NULL

Подробное описание свойств дочерних элементов

Свойство “icon-name” дочернего элемента

  “icon-name”                gchar *

Имя значка страницы дочернего элемента.

Флаги: Чтение / Запись

Значение по умолчанию: NULL

Свойство “name” дочернего элемента

  “name”                     gchar *

Имя страницы дочернего элемента.

Флаги: Чтение / Запись

Значение по умолчанию: NULL

Свойство “needs-attention” дочернего элемента

  “needs-attention”          gboolean

Устанавливает флаг, указывающий, требует ли дочерний элемент внимания пользователя. Это используется элементом GtkStackSwitcher для изменения внешнего вида соответствующей кнопки, когда страница требует внимания, и она не является текущей.

Флаги: Чтение / Запись

Значение по умолчанию: FALSE

С: 3.12

Свойство “position” дочернего элемента

  “position”                 gint

Индекс дочернего элемента в родительском элементе.

Флаги: Чтение / Запись

Допустимые значения: >= -1

Значение по умолчанию: 0

Свойство “title” дочернего элемента

  “title”                    gchar *

Заголовок страницы дочернего элемента.

Флаги: Чтение / Запись

Значение по умолчанию: NULL

См. также

GtkNotebook, GtkStackSwitcher

© 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/GtkStack.html

Spec-Zone.ru

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