Skip to content

textual.screen

This module contains the Screen class and related objects.

The Screen class is a special widget which represents the content in the terminal. See Screens for details.

ScreenResultCallbackType module-attribute

ScreenResultCallbackType = Union[
    Callable[[Optional[ScreenResultType]], None],
    Callable[[Optional[ScreenResultType]], Awaitable[None]],
]

Type of a screen result callback function.

ScreenResultType module-attribute

ScreenResultType = TypeVar('ScreenResultType')

The result type of a screen.

HoverWidgets

Bases: NamedTuple

Result of [get_hover_widget_at][textual.screen.Screen.get_hover_widget_at]

hover_over instance-attribute

hover_over

Widget with a hover style under the mouse, or None for no hover style widget.

mouse_over instance-attribute

mouse_over

Widget and region directly under the mouse.

widgets property

widgets

Just the widgets.

ModalScreen

ModalScreen(name=None, id=None, classes=None)

Bases: Screen[ScreenResultType]

A screen with bindings that take precedence over the App's key bindings.

The default styling of a modal screen will dim the screen underneath.

ResultCallback

ResultCallback(requester, callback, future=None)

Bases: Generic[ScreenResultType]

Holds the details of a callback.

Parameters:

Name Type Description Default

requester

MessagePump

The object making a request for the callback.

required

callback

ScreenResultCallbackType[ScreenResultType] | None

The callback function.

required

future

Future[ScreenResultType] | None

A Future to hold the result.

None

callback instance-attribute

callback = callback

The callback function.

future instance-attribute

future = future

A future for the result

requester instance-attribute

requester = requester

The object in the DOM that requested the callback.

Screen

Screen(name=None, id=None, classes=None)

Bases: Generic[ScreenResultType], Widget

The base class for screens.

Parameters:

Name Type Description Default

name

str | None

The name of the screen.

None

id

str | None

The ID of the screen in the DOM.

None

classes

str | None

The CSS classes for the screen.

None

ALLOW_IN_MAXIMIZED_VIEW class-attribute

ALLOW_IN_MAXIMIZED_VIEW = None

A selector for the widgets (direct children of Screen) that are allowed in the maximized view (in addition to maximized widget). Or None to default to App.ALLOW_IN_MAXIMIZED_VIEW

AUTO_FOCUS class-attribute

AUTO_FOCUS = None

A selector to determine what to focus automatically when the screen is activated.

The widget focused is the first that matches the given CSS selector. Set to None to inherit the value from the screen's app. Set to "" to disable auto focus.

COMMANDS class-attribute

COMMANDS = set()

Command providers used by the command palette, associated with the screen.

Should be a set of command.Provider classes.

CSS class-attribute

CSS = ''

Inline CSS, useful for quick scripts. Rules here take priority over CSS_PATH.

Note

This CSS applies to the whole app.

CSS_PATH class-attribute

CSS_PATH = None

File paths to load CSS from.

Note

This CSS applies to the whole app.

ESCAPE_TO_MINIMIZE class-attribute

ESCAPE_TO_MINIMIZE = None

Use escape key to minimize (potentially overriding bindings) or None to defer to App.ESCAPE_TO_MINIMIZE.

HORIZONTAL_BREAKPOINTS class-attribute instance-attribute

HORIZONTAL_BREAKPOINTS = None

Horizontal breakpoints, will override App.HORIZONTAL_BREAKPOINTS if not None.

SUB_TITLE class-attribute

SUB_TITLE = None

A class variable to set the default sub-title for the screen.

This overrides the app sub-title. To update the sub-title while the screen is running, you can set the sub_title attribute.

TITLE class-attribute

TITLE = None

A class variable to set the default title for the screen.

This overrides the app title. To update the title while the screen is running, you can set the title attribute.

VERTICAL_BREAKPOINTS class-attribute instance-attribute

VERTICAL_BREAKPOINTS = None

Vertical breakpoints, will override App.VERTICAL_BREAKPOINTS if not None.

active_bindings property

active_bindings

Get currently active bindings for this screen.

If no widget is focused, then app-level bindings are returned. If a widget is focused, then any bindings present in the screen and app are merged and returned.

This property may be used to inspect current bindings.

Returns:

Type Description
dict[str, ActiveBinding]

A map of keys to a tuple containing (NAMESPACE, BINDING, ENABLED).

allow_select property

allow_select

Check if this widget permits text selection.

bindings_updated_signal instance-attribute

bindings_updated_signal = Signal(self, 'bindings_updated')

A signal published when the bindings have been updated

focus_chain property

focus_chain

A list of widgets that may receive focus, in focus order.

focused class-attribute instance-attribute

focused = Reactive(None)

The focused widget or None for no focus. To set focus, do not update this value directly. Use set_focus instead.

is_active property

is_active

Is the screen active (i.e. visible and top of the stack)?

is_current property

is_current

Is the screen current (i.e. visible to user)?

is_modal property

is_modal

Is the screen modal?

layers property

layers

Layers from parent.

Returns:

Type Description
tuple[str, ...]

Tuple of layer names.

maximized class-attribute instance-attribute

maximized = Reactive(None, layout=True)

The currently maximized widget, or None for no maximized widget.

screen_layout_refresh_signal instance-attribute