GtkStack
GtkStack — Стек-контейнер
Функции
Свойства
| GtkWidget * | child | Чтение / Запись / Только для создания |
| char * | имя_иконки | Чтение / Запись |
| char * | имя | Чтение / Запись / Только для создания |
| gboolean | требует_внимания | Чтение / Запись |
| char * | заголовок | Чтение / Запись |
| gboolean | использовать_подчеркивание | Чтение / Запись |
| gboolean | видимый | Чтение / Запись |
| gboolean | hhomogeneous | Чтение / Запись |
| gboolean | интерполировать_размер | Чтение / Запись |
| GtkSelectionModel * | страницы | Чтение |
| guint | продолжительность_перехода | Чтение / Запись |
| gboolean | переход_в_процессе | Чтение |
| GtkStackTransitionType | тип_перехода | Чтение / Запись |
| gboolean | vhomogeneous | Чтение / Запись |
| GtkWidget * | видимый_элемент | Чтение / Запись |
| char * | имя_видимого_элемента | Чтение / Запись |
Типы и значения
| GtkStackPage | |
| GtkStack | |
| перечисление | ТипПереходаGtkStack |
Иерархия объектов
GObject
├── GInitiallyUnowned
│ ╰── GtkWidget
│ ╰── GtkStack
╰── GtkStackPage
Реализованные интерфейсы
GtkStackPage реализует GtkAccessible.
GtkStack реализует GtkAccessible, GtkBuildable и GtkConstraintTarget.
Файлы заголовков
#include <gtk/gtk.h>
Описание
Виджет GtkStack — это контейнер, который отображает только один из своих дочерних элементов за раз. В отличие от GtkNotebook, GtkStack не предоставляет пользователю средства для изменения видимого дочернего элемента. Вместо этого, для этой функциональности можно использовать виджет GtkStackSwitcher совместно с GtkStack.
Переходы между страницами могут быть анимированы как слайды или затемнения. Это можно контролировать с помощью gtk_stack_set_transition_type(). Эти анимации учитывают настройку “gtk-enable-animations”.
GtkStack сохраняет объект GtkStackPage для каждого добавленного дочернего элемента, который содержит дополнительные свойства для каждого элемента. Вы получаете GtkStackPage для дочернего элемента с помощью gtk_stack_get_page().
GtkStack как GtkBuildable
Чтобы установить свойства, специфичные для дочерних элементов, в файле .ui, создайте объекты GtkStackPage явно и задайте дочерний виджет как свойство на нём:
<object class="GtkStack" id="stack">
<child>
<object class="GtkStackPage">
<property name="name">page1</property>
<property name="title">In the beginning…</property>
<property name="child">
<object class="GtkLabel">
<property name="label">It was dark</property>
</object>
</property>
</object>
</child>Узлы CSS
GtkStack имеет единственный узел CSS с именем stack.
Доступность
GtkStack использует GTK_ACCESSIBLE_ROLE_TAB_PANEL для страниц стека, которые являются доступными родительскими объектами для дочерних виджетов.
Функции
gtk_stack_page_get_visible ()
gboolean
gtk_stack_page_get_visible (GtkStackPage *self); Возвращает, отображается ли page в его GtkStack. Это независимо от значения “visible” его GtkWidget.
Параметры
self | объект GtkStackPage |
Возвращает
TRUE если page отображается
gtk_stack_page_set_visible ()
void gtk_stack_page_set_visible (GtkStackPage *self,gboolean visible);
Устанавливает новое значение свойства “visible” на visible.
Параметры
self | объект GtkStackPage | |
visible | Новое значение свойства |
gtk_stack_page_get_title ()
const char *
gtk_stack_page_get_title (GtkStackPage *self); Возвращает текущее значение свойства “title”.
Параметры
self | объект GtkStackPage |
Возвращает
Значение свойства “title”. См. gtk_stack_page_set_title() для подробностей о установке нового значения.
[nullable]
gtk_stack_page_set_title ()
void gtk_stack_page_set_title (GtkStackPage *self,const char *setting);
Устанавливает новое значение свойства “title”. См. также gtk_stack_page_get_title()
Параметры
self | объект GtkStackPage | |
setting | новое значение. | [transfer none] |
gtk_stack_page_get_name ()
const char *
gtk_stack_page_get_name (GtkStackPage *self); Возвращает текущее значение свойства “name”.
Параметры
self | объект GtkStackPage |
Возвращает
Значение свойства “name”. См. gtk_stack_page_set_name() для подробностей о установке нового значения.
[nullable]
gtk_stack_page_set_name ()
void gtk_stack_page_set_name (GtkStackPage *self,const char *setting);
Устанавливает новое значение свойства “name”. См. также gtk_stack_page_get_name()
Параметры
self | объект GtkStackPage | |
setting | новое значение. | [transfer none] |
gtk_stack_page_get_needs_attention ()
gboolean
gtk_stack_page_get_needs_attention (GtkStackPage *self); Возвращает текущее значение свойства “needs-attention”.
Параметры
self | объект GtkStackPage |
Возвращает
Значение свойства “needs-attention”. См. gtk_stack_page_set_needs_attention() для подробностей о установке нового значения.
gtk_stack_page_set_needs_attention ()
void gtk_stack_page_set_needs_attention (GtkStackPage *self,gboolean setting);
Устанавливает новое значение свойства “needs-attention”. См. также gtk_stack_page_get_needs_attention()
Параметры
self | объект GtkStackPage | |
setting | новое значение |
gtk_stack_page_get_use_underline ()
gboolean
gtk_stack_page_get_use_underline (GtkStackPage *self); Возвращает текущее значение свойства “use-underline”.
Параметры
self | объект GtkStackPage |
Возвращает
Значение свойства “use-underline”. См. gtk_stack_page_set_use_underline() для подробностей о установке нового значения.
gtk_stack_page_set_use_underline ()
void gtk_stack_page_set_use_underline (GtkStackPage *self,gboolean setting);
Устанавливает новое значение свойства “use-underline”. См. также gtk_stack_page_get_use_underline()
Параметры
self | объект GtkStackPage | |
setting | новое значение |
gtk_stack_page_get_icon_name ()
const char *
gtk_stack_page_get_icon_name (GtkStackPage *self); Возвращает текущее значение свойства “icon-name”.
Параметры
self | объект GtkStackPage |
Возвращает
Значение свойства “icon-name”. См. gtk_stack_page_set_icon_name() для подробностей о установке нового значения.
[nullable]
gtk_stack_page_set_icon_name ()
void gtk_stack_page_set_icon_name (GtkStackPage *self,const char *setting);
Устанавливает новое значение свойства “icon-name”. См. также gtk_stack_page_get_icon_name()
Параметры
self | объект GtkStackPage | |
setting | новое значение. | [transfer none] |
gtk_stack_page_get_child ()
GtkWidget *
gtk_stack_page_get_child (GtkStackPage *self); Возвращает дочерний элемент стека, к которому принадлежит self.
Параметры
self |
Возвращает
дочерний элемент, к которому принадлежит self.
[transfer none]
gtk_stack_new ()
GtkWidget *
gtk_stack_new (void); Создаёт новый контейнер GtkStack.
Возвращает
новый GtkStack
gtk_stack_add_child ()
GtkStackPage * gtk_stack_add_child (GtkStack *stack,GtkWidget *child);
Добавляет дочерний элемент в stack.
Параметры
stack | a GtkStack | |
child | виджет для добавления |
gtk_stack_add_named ()
GtkStackPage * gtk_stack_add_named (GtkStack *stack,GtkWidget *child,const char *name);
Добавляет дочерний элемент в stack. Дочерний элемент идентифицируется по name.
Параметры
stack | a GtkStack | |
child | виджет для добавления | |
name | имя для | [nullable] |
gtk_stack_add_titled ()
GtkStackPage * gtk_stack_add_titled (GtkStack *stack,GtkWidget *child,const char *name,const char *title);
Добавляет дочерний элемент в stack. Дочерний элемент идентифицируется по name. title будет использоваться GtkStackSwitcher для представления child на панели вкладок, поэтому оно должно быть коротким.
Параметры
stack | a GtkStack | |
child | виджет для добавления | |
name | имя для | [nullable] |
title | человеко-читаемое название для |
gtk_stack_remove ()
void gtk_stack_remove (GtkStack *stack,GtkWidget *child);
Удаляет дочерний виджет из stack.
Параметры
stack | a GtkStack | |
child | дочерний элемент для удаления |
gtk_stack_get_child_by_name ()
GtkWidget * gtk_stack_get_child_by_name (GtkStack *stack,const char *name);
Ищет дочерний элемент GtkStack с заданным именем. Возвращает NULL если дочернего элемента с этим именем нет.
Параметры
stack | a GtkStack | |
name | имя дочернего элемента для поиска |
gtk_stack_get_page ()
GtkStackPage * gtk_stack_get_page (GtkStack *stack,GtkWidget *child);
Возвращает объект GtkStackPage для child.
Параметры
stack | a GtkStack | |
child | дочерний элемент |
gtk_stack_get_pages ()
GtkSelectionModel *
gtk_stack_get_pages (GtkStack *stack); Возвращает GListModel, содержащий страницы стека, который можно использовать для поддержания актуального представления. Модель также реализует GtkSelectionModel и может использоваться для отслеживания и изменения видимой страницы.
Параметры
stack | a GtkStack |
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 | дочерний элемент |
gtk_stack_get_visible_child ()
GtkWidget *
gtk_stack_get_visible_child (GtkStack *stack); Возвращает текущего видимого потомка stack или NULL, если видимых потомков нет.
Параметры
stack | a GtkStack |
gtk_stack_set_visible_child_name ()
void gtk_stack_set_visible_child_name (GtkStack *stack,const char *name);
Делает видимым потомка с указанным именем.
Если child отличается от текущего видимого потомка, переход между ними будет анимирован с текущим типом перехода stack.
Обратите внимание, что сам виджет-потомок должен быть видим (см. gtk_widget_show()), чтобы стать видимым потомком stack.
Параметры
stack | a GtkStack | |
name | имя потомка, который нужно сделать видимым |
gtk_stack_get_visible_child_name ()
const char *
gtk_stack_get_visible_child_name (GtkStack *stack); Возвращает имя текущего видимого потомка stack или NULL, если видимого потомка нет.
Параметры
stack | a GtkStack |
gtk_stack_set_visible_child_full ()
void gtk_stack_set_visible_child_full (GtkStack *stack,const char *name,GtkStackTransitionType transition);
Делает видимым потомка с указанным именем.
Обратите внимание, что сам виджет-потомок должен быть видим (см. gtk_widget_show()), чтобы стать видимым потомком stack.
Параметры
stack | a GtkStack | |
name | имя потомка, который нужно сделать видимым | |
transition | тип перехода, который нужно использовать |
gtk_stack_set_hhomogeneous ()
void gtk_stack_set_hhomogeneous (GtkStack *stack,gboolean hhomogeneous);
Устанавливает GtkStack как горизонтально однородный или нет. Если он однородный, GtkStack будет запрашивать одинаковую ширину для всех своих потомков. Если нет, ширина стека может изменяться, когда становится видимым другой потомок.
Параметры
stack | a GtkStack | |
hhomogeneous |
|
gtk_stack_get_hhomogeneous ()
gboolean
gtk_stack_get_hhomogeneous (GtkStack *stack); Возвращает, является ли stack горизонтально однородным. См. gtk_stack_set_hhomogeneous().
Параметры
stack | a GtkStack |
Возвращает
является ли stack горизонтально однородным.
gtk_stack_set_vhomogeneous ()
void gtk_stack_set_vhomogeneous (GtkStack *stack,gboolean vhomogeneous);
Устанавливает GtkStack как вертикально однородный или нет. Если он однородный, GtkStack будет запрашивать одинаковую высоту для всех своих потомков. Если нет, высота стека может изменяться, когда становится видимым другой потомок.
Параметры
stack | a GtkStack | |
vhomogeneous |
|
gtk_stack_get_vhomogeneous ()
gboolean
gtk_stack_get_vhomogeneous (GtkStack *stack); Возвращает, является ли stack вертикально однородным. См. gtk_stack_set_vhomogeneous().
Параметры
stack | a GtkStack |
Возвращает
является ли stack вертикально однородным.
gtk_stack_set_transition_duration ()
void gtk_stack_set_transition_duration (GtkStack *stack,guint duration);
Устанавливает продолжительность переходов между страницами в stack.
Параметры
stack | a GtkStack | |
duration | новая продолжительность в миллисекундах |
gtk_stack_get_transition_duration ()
guint
gtk_stack_get_transition_duration (GtkStack *stack); Возвращает время (в миллисекундах), которое займут переходы между страницами в stack.
Параметры
stack | a GtkStack |
Возвращает
продолжительность перехода
gtk_stack_set_transition_type ()
void gtk_stack_set_transition_type (GtkStack *stack,GtkStackTransitionType transition);
Устанавливает тип анимации, который будет использоваться для переходов между страницами в stack. Доступные типы включают различные виды затухания и слайдов.
Тип перехода может быть изменен без проблем во время выполнения, поэтому можно изменить анимацию в зависимости от страницы, которая собирается стать текущей.
Параметры
stack | a GtkStack | |
transition | новый тип перехода |
gtk_stack_get_transition_type ()
GtkStackTransitionType
gtk_stack_get_transition_type (GtkStack *stack); Возвращает тип анимации, который будет использоваться для переходов между страницами в stack.
Параметры
stack | a GtkStack |
Возвращает
текущий тип перехода stack
gtk_stack_get_transition_running ()
gboolean
gtk_stack_get_transition_running (GtkStack *stack); Возвращает, находится ли stack в данный момент в процессе перехода с одной страницы на другую.
Параметры
stack | a GtkStack |
Возвращаемое значение
TRUE если переход выполняется, FALSE в противном случае.
gtk_stack_get_interpolate_size ()
gboolean
gtk_stack_get_interpolate_size (GtkStack *stack); Возвращает, настроен ли GtkStack на интерполяцию размеров дочерних элементов при переключении страниц.
Параметры
stack | A GtkStack |
Возвращаемое значение
TRUE если размеры дочерних элементов интерполируются
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 | the new value |
Типы и значения
GtkStackPage
typedef struct _GtkStackPage GtkStackPage;
GtkStack
typedef struct _GtkStack 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 | Накрыть старую страницу, сдвинув вверх | |
GTK_STACK_TRANSITION_TYPE_OVER_DOWN | Накрыть старую страницу, сдвинув вниз | |
GTK_STACK_TRANSITION_TYPE_OVER_LEFT | Накрыть старую страницу, сдвинув влево | |
GTK_STACK_TRANSITION_TYPE_OVER_RIGHT | Накрыть старую страницу, сдвинув вправо | |
GTK_STACK_TRANSITION_TYPE_UNDER_UP | Раскрыть новую страницу, сдвинув вверх | |
GTK_STACK_TRANSITION_TYPE_UNDER_DOWN | Раскрыть новую страницу, сдвинув вниз | |
GTK_STACK_TRANSITION_TYPE_UNDER_LEFT | Раскрыть новую страницу, сдвинув влево | |
GTK_STACK_TRANSITION_TYPE_UNDER_RIGHT | Раскрыть новую страницу, сдвинув вправо | |
GTK_STACK_TRANSITION_TYPE_OVER_UP_DOWN | Накрыть старую страницу, сдвинув вверх, или раскрыть новую страницу, сдвинув вниз, в зависимости от порядка | |
GTK_STACK_TRANSITION_TYPE_OVER_DOWN_UP | Накрыть старую страницу, сдвинув вниз, или раскрыть новую страницу, сдвинув вверх, в зависимости от порядка | |
GTK_STACK_TRANSITION_TYPE_OVER_LEFT_RIGHT | Накрыть старую страницу, сдвинув влево, или раскрыть новую страницу, сдвинув вправо, в зависимости от порядка | |
GTK_STACK_TRANSITION_TYPE_OVER_RIGHT_LEFT | Накрыть старую страницу, сдвинув вправо, или раскрыть новую страницу, сдвинув влево, в зависимости от порядка | |
GTK_STACK_TRANSITION_TYPE_ROTATE_LEFT | Представьте, что страницы являются сторонами куба, и поверните этот куб влево | |
GTK_STACK_TRANSITION_TYPE_ROTATE_RIGHT | Представьте, что страницы являются сторонами куба, и поверните этот куб вправо | |
GTK_STACK_TRANSITION_TYPE_ROTATE_LEFT_RIGHT | Представьте, что страницы являются сторонами куба, и поверните этот куб влево или вправо в зависимости от порядка дочерних элементов |
Подробное описание свойств
Свойство “child”
“child” GtkWidget *
Элемент страницы.
Владелец: GtkStackPage
Флаги: Чтение / Запись / Только для создания
Свойство “icon-name”
“icon-name” char *
Имя значка дочерней страницы.
Владелец: GtkStackPage
Флаги: Чтение / Запись
Значение по умолчанию: NULL
Свойство “name”
“name” char *
Имя дочерней страницы.
Владелец: GtkStackPage
Флаги: Чтение / Запись / Только для создания
Значение по умолчанию: NULL
Свойство “needs-attention”
“needs-attention” gboolean
Устанавливает флаг, указывающий, требует ли страница внимания пользователя. Используется GtkStackSwitcher для изменения внешнего вида соответствующей кнопки, когда страница требует внимания, но не является текущей.
Владелец: GtkStackPage
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “title”
“title” char *
Заголовок дочерней страницы.
Владелец: GtkStackPage
Флаги: Чтение / Запись
Значение по умолчанию: NULL
Свойство “use-underline”
“use-underline” gboolean
Если установлено, подчеркивание в заголовке указывает, что следующий символ должен использоваться для комбинации клавиш.
Владелец: GtkStackPage
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “visible”
“visible” gboolean
Видимость этой страницы.
Владелец: GtkStackPage
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Свойство “hhomogeneous”
“hhomogeneous” gboolean
TRUE если стеку выделяется одинаковая ширина для всех дочерних элементов.
Владелец: GtkStack
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Свойство “interpolate-size”
“interpolate-size” gboolean
Определяет, должна ли изменяться размер плавно при переходе между дочерними элементами с разными размерами.
Владелец: GtkStack
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “pages”
“pages” GtkSelectionModel *
Модель выбора со страницами стека.
Владелец: GtkStack
Флаги: Чтение
Свойство “transition-duration”
“transition-duration” guint
Продолжительность анимации в миллисекундах.
Владелец: GtkStack
Флаги: Чтение / Запись
Значение по умолчанию: 200
Свойство “transition-running”
“transition-running” gboolean
Выполняется ли в данный момент переход.
Владелец: GtkStack
Флаги: Чтение
Значение по умолчанию: FALSE
Свойство “transition-type”
“transition-type” GtkStackTransitionType
Тип анимации, используемой для перехода.
Владелец: GtkStack
Флаги: Чтение / Запись
Значение по умолчанию: GTK_STACK_TRANSITION_TYPE_NONE
Свойство “vhomogeneous”
“vhomogeneous” gboolean
TRUE если стеку выделяется одинаковая высота для всех дочерних элементов.
Владелец: GtkStack
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Свойство “visible-child”
“visible-child” GtkWidget *
Виджет, который в данный момент виден в стеке.
Владелец: GtkStack
Флаги: Чтение / Запись
Свойство “visible-child-name”
“visible-child-name” char *
Имя виджета, который в данный момент виден в стеке.
Владелец: GtkStack
Флаги: Чтение / Запись
Значение по умолчанию: NULL
См. также
© 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/GtkStack.html