Skip to content

Content switcher

textual.widgets.ContentSwitcher class

def __init__(
    self,
    *children,
    name=None,
    id=None,
    classes=None,
    disabled=False,
    initial=None
):

Bases: Container

A widget for switching between different children.

Note

All child widgets that are to be switched between need a unique ID. Children that have no ID will be hidden and ignored.

Parameters
Parameter Default Description
*children
Widget
()

The widgets to switch between.

name
str | None
None

The name of the content switcher.

id
str | None
None

The ID of the content switcher in the DOM.

classes
str | None
None

The CSS classes of the content switcher.

disabled
bool
False

Whether the content switcher is disabled or not.

initial
str | None
None

The ID of the initial widget to show, None or empty string for the first tab.

Note

If initial is not supplied no children will be shown to start with.

current class-attribute instance-attribute

current: reactive[str | None] = reactive[Optional[str]](
    None, init=False
)

The ID of the currently-displayed widget.

If set to None then no widget is visible.

Note

If set to an unknown ID, this will result in NoMatches being raised.

visible_content property

visible_content: Widget | None

A reference to the currently-visible widget.

None if nothing is visible.

watch_current method

def watch_current(self, old, new):

React to the current visible child choice being changed.

Parameters
Parameter Default Description
old
str | None
required

The old widget ID (or None if there was no widget).

new
str | None
required

The new widget ID (or None if nothing should be shown).