Adw.ViewSwitcher

g Adw.ViewSwitcher Adw.ViewSwitcher GObject.GInterface GObject.GInterface Gtk.Accessible Gtk.Accessible GObject.GInterface->Gtk.Accessible Gtk.Buildable Gtk.Buildable GObject.GInterface->Gtk.Buildable Gtk.ConstraintTarget Gtk.ConstraintTarget GObject.GInterface->Gtk.ConstraintTarget GObject.InitiallyUnowned GObject.InitiallyUnowned Gtk.Widget Gtk.Widget GObject.InitiallyUnowned->Gtk.Widget GObject.Object GObject.Object GObject.Object->GObject.InitiallyUnowned Gtk.Accessible->Gtk.Widget Gtk.Buildable->Gtk.Widget Gtk.ConstraintTarget->Gtk.Widget Gtk.Widget->Adw.ViewSwitcher

Subclasses:

None

Methods

Inherited:

Gtk.Widget (181), GObject.Object (37), Gtk.Accessible (15), Gtk.Buildable (1)

Structs:

Gtk.WidgetClass (18), GObject.ObjectClass (5)

class

new ()

get_policy ()

get_stack ()

set_policy (policy)

set_stack (stack)

Virtual Methods

Inherited:

Gtk.Widget (25), GObject.Object (7), Gtk.Accessible (6), Gtk.Buildable (9)

Properties

Inherited:

Gtk.Widget (34), Gtk.Accessible (1)

Name

Type

Flags

Short Description

policy

Adw.ViewSwitcherPolicy

r/w/en

stack

Adw.ViewStack

r/w/en

Signals

Inherited:

Gtk.Widget (13), GObject.Object (1)

Fields

Inherited:

Gtk.Widget (13), GObject.Object (1)

Class Details

class Adw.ViewSwitcher(**kwargs)
Bases:

Gtk.Widget

Abstract:

No

Structure:

Adw.ViewSwitcherClass

An adaptive view switcher.

<picture> <source srcset=”view-switcher-dark.png” media=”(prefers-color-scheme: dark)”> <img src=”view-switcher.png” alt=”view-switcher”> </picture>

An adaptive view switcher designed to switch between multiple views contained in a [class`ViewStack`] in a similar fashion to [class`Gtk`.StackSwitcher].

AdwViewSwitcher buttons always have an icon and a label. They can be displayed side by side, or icon on top of the label. This can be controlled via the [property`ViewSwitcher`:py:data::policy<Adw.ViewSwitcher.props.policy>] property.

AdwViewSwitcher is intended to be used in a header bar together with [class`ViewSwitcherBar`] at the bottom of the window, and a [class`Breakpoint`] showing the view switcher bar on narrow sizes, while removing the view switcher from the header bar, as follows:

``xml <object class=”AdwWindow”>

<property name=”width-request”>360</property> <property name=”height-request”>200</property> <child>

<object class=”AdwBreakpoint”>

<condition>max-width: 550sp</condition> <setter object=”switcher_bar” property=”reveal”>True</setter> <setter object=”header_bar” property=”title-widget”/>

</object>

</child> <property name=”content”>

<object class=”AdwToolbarView”>
<child type=”top”>
<object class=”AdwHeaderBar” id=”header_bar”>
<property name=”title-widget”>
<object class=”AdwViewSwitcher”>

<property name=”stack”>stack</property> <property name=”policy”>wide</property>

</object>

</property>

</object>

</child> <property name=”content”>

<object class=”AdwViewStack” id=”stack”/>

</property> <child type=”bottom”>

<object class=”AdwViewSwitcherBar” id=”switcher_bar”>

<property name=”stack”>stack</property>

</object>

</child>

</object>

</property>

</object> ``

It’s recommended to set [property`ViewSwitcher`:py:data::policy<Adw.ViewSwitcher.props.policy>] to ADW_VIEW_SWITCHER_POLICY_WIDE in this case.

You may have to adjust the breakpoint condition for your specific pages.

CSS nodes

AdwViewSwitcher has a single CSS node with name viewswitcher. It can have the style classes .wide and .narrow, matching its policy.

Accessibility

AdwViewSwitcher uses the GTK_ACCESSIBLE_ROLE_TAB_LIST role and uses the GTK_ACCESSIBLE_ROLE_TAB for its buttons.

classmethod new()
Returns:

the newly created AdwViewSwitcher

Return type:

Gtk.Widget

Creates a new AdwViewSwitcher.

get_policy()
Returns:

the policy of self

Return type:

Adw.ViewSwitcherPolicy

Gets the policy of self.

get_stack()
Returns:

the stack

Return type:

Adw.ViewStack or None

Gets the stack controlled by self.

set_policy(policy)
Parameters:

policy (Adw.ViewSwitcherPolicy) – the new policy

Sets the policy of self.

set_stack(stack)
Parameters:

stack (Adw.ViewStack or None) – a stack

Sets the stack controlled by self.

Property Details

Adw.ViewSwitcher.props.policy
Name:

policy

Type:

Adw.ViewSwitcherPolicy

Default Value:

Adw.ViewSwitcherPolicy.NARROW

Flags:

READABLE, WRITABLE, EXPLICIT_NOTIFY

The policy to determine which mode to use.

Adw.ViewSwitcher.props.stack
Name:

stack

Type:

Adw.ViewStack

Default Value:

None

Flags:

READABLE, WRITABLE, EXPLICIT_NOTIFY

The stack the view switcher controls.