GtkStack
GtkStack — Стек-контейнер
Функции
Свойства
| 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 * | заголовок | Чтение/Запись |
Типы и значения
| структура | GtkStack |
| перечисление | GtkStackTransitionType |
Иерархия объектов
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 | a GtkStack | |
child | виджет для добавления | |
name | имя для |
С версии: 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 | a GtkStack | |
child | виджет для добавления | |
name | имя для | |
title | человекопонятное имя для |
С версии: 3.10
gtk_stack_get_child_by_name ()
GtkWidget * gtk_stack_get_child_by_name (GtkStack *stack,const gchar *name);
Находит дочерний элемент GtkStack с заданным именем. Возвращает NULL, если такого дочернего элемента нет.
Параметры
stack | a GtkStack | |
name | имя искомого дочернего элемента |
С версии: 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 | a GtkStack | |
child | дочерний элемент |
С версии: 3.10
gtk_stack-get-visible-child ()
GtkWidget *
gtk_stack_get_visible_child (GtkStack *stack); Возвращает текущий видимый дочерний элемент stack, или NULL, если видимых дочерних элементов нет.
Параметры
stack | a GtkStack |
С версии: 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 | a GtkStack | |
name | имя дочернего элемента, который нужно сделать видимым |
С версии: 3.10
gtk_stack_get_visible_child_name ()
const gchar *
gtk_stack_get_visible_child_name (GtkStack *stack); Возвращает имя текущего видимого дочернего элемента stack, или NULL, если видимых дочерних элементов нет.
Параметры
stack | a GtkStack |
С версии: 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 | a GtkStack | |
name | имя дочернего элемента, который нужно сделать видимым | |
transition | тип перехода |
С версии: 3.10
gtk_stack_set_homogeneous ()
void gtk_stack_set_homogeneous (GtkStack *stack,gboolean homogeneous);
Устанавливает GtkStack в однородный или неоднородный режим. Если он однородный, GtkStack запросит одинаковый размер для всех своих дочерних элементов. Если нет, размер стека может измениться, когда другой дочерний элемент станет видимым.
Начиная с версии 3.16, однородность можно контролировать отдельно для горизонтального и вертикального размера с помощью свойств “hhomogeneous” и “vhomogeneous”.
С версии: 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 запросит одинаковую ширину для всех своих дочерних элементов. Если нет, ширина стека может измениться, когда другой дочерний элемент станет видимым.
С версии: 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 запросит одинаковую высоту для всех своих дочерних элементов. Если нет, высота стека может измениться, когда другой дочерний элемент станет видимым.
С версии: 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 |
С версии: 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
См. также
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.20/GtkStack.html