Skip to main content

Variable: Stack

const Stack: object

Defined in: react/src/generated/jsx.ts:15360

Shows one of its children at a time.

In contrast to GtkNotebook, GtkStack does not provide a means for users to change the visible child. Instead, a separate widget such as [class@Gtk.StackSwitcher] or [class@Gtk.StackSidebar] can be used with GtkStack to provide this functionality.

Transitions between pages can be animated as slides or fades. This can be controlled with [method@Gtk.Stack.set_transition_type]. These animations respect the [property@Gtk.Settings:gtk-enable-animations] setting.

GtkStack maintains a [class@Gtk.StackPage] object for each added child, which holds additional per-child properties. You obtain the GtkStackPage for a child with [method@Gtk.Stack.get_page] and you can obtain a GtkSelectionModel containing all the pages with [method@Gtk.Stack.get_pages].

GtkStack as GtkBuildable

To set child-specific properties in a .ui file, create GtkStackPage objects explicitly, and set the child widget as a property on it:

<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 nodes

GtkStack has a single CSS node named stack.

Accessibility

GtkStack uses the [enum@Gtk.AccessibleRole.tab_panel] role for the stack pages, which are the accessible parent objects of the child widgets.

Type Declaration​

NameTypeDefined in
Root"Stack.Root"react/src/generated/jsx.ts:15361
VisibleChild"Stack.VisibleChild"react/src/generated/jsx.ts:15362