textual.events
Builtin events sent by Textual.
Events may be marked as "Bubbles" and "Verbose".
See the events guide for an explanation of bubbling.
Verbose events are excluded from the textual console, unless you explicitly request them with the -v
switch as follows:
AppBlur
¶
Bases: Event
Sent when the app loses focus.
- Bubbles
- Verbose
Note
Only available when running within a terminal that supports
FocusOut
, or when running via textual-web.
AppFocus
¶
Bases: Event
Sent when the app has focus.
- Bubbles
- Verbose
Note
Only available when running within a terminal that supports
FocusIn
, or when running via textual-web.
Callback
¶
Click
¶
Click(
widget,
x,
y,
delta_x,
delta_y,
button,
shift,
meta,
ctrl,
screen_x=None,
screen_y=None,
style=None,
chain=1,
)
Bases: MouseEvent
Sent when a widget is clicked.
- Bubbles
- Verbose
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
int
|
The number of clicks in the chain. 2 is a double click, 3 is a triple click, etc. |
1
|
Compose
¶
Bases: Event
Sent to a widget to request it to compose and mount children.
This event is used internally by Textual. You won't typically need to explicitly handle it,
- Bubbles
- Verbose
CursorPosition
dataclass
¶
DeliveryComplete
dataclass
¶
Bases: Event
Sent to App when a file has been delivered.
key
instance-attribute
¶
The delivery key associated with the delivery.
This is the same key that was returned by App.deliver_text
/App.deliver_binary
.
name
class-attribute
instance-attribute
¶
Optional name returned to the app to identify the download.
path
class-attribute
instance-attribute
¶
The path where the file was saved, or None
if the path is not available, for
example if the file was delivered via web browser.
DescendantBlur
dataclass
¶
DescendantFocus
dataclass
¶
Enter
¶
Bases: Event
Sent when the mouse is moved over a widget.
Note that this event bubbles, so a widget may receive this event when the mouse
moves over a child widget. Check the node
attribute for the widget directly under
the mouse.
- Bubbles
- Verbose
Hide
¶
Bases: Event
Sent when a widget has been hidden.
- Bubbles
- Verbose
Sent when any of the following conditions apply:
- The widget is removed from the DOM.
- The widget is no longer displayed because it has been scrolled or clipped from the terminal or its container.
- The widget has its
display
attribute set toFalse
. - The widget's
display
style is set to"none"
.
Idle
¶
Bases: Event
Sent when there are no more items in the message queue.
This is a pseudo-event in that it is created by the Textual system and doesn't go through the usual message queue.
- Bubbles
- Verbose
Key
¶
Bases: InputEvent
Sent when the user hits a key on the keyboard.
- Bubbles
- Verbose
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
str
|
The key that was pressed. |
required |
|
str | None
|
A printable character or |
required |
aliases
instance-attribute
¶
aliases = _get_key_aliases(key)
The aliases for the key, including the key itself.
character
instance-attribute
¶
A printable character or None
if it is not printable.
Leave
¶
Bases: Event
Sent when the mouse is moved away from a widget, or if a widget is programmatically disabled while hovered.
Note that this widget bubbles, so a widget may receive Leave events for any child widgets.
Check the node
parameter for the original widget that was previously under the mouse.
- Bubbles
- Verbose
Load
¶
Bases: Event
Sent when the App is running but before the terminal is in application mode.
Use this event to run any setup that doesn't require any visuals such as loading configuration and binding keys.
- Bubbles
- Verbose
Mount
¶
MouseCapture
¶
MouseCapture(mouse_position)
Bases: Event
Sent when the mouse has been captured.
- Bubbles
- Verbose
When a mouse has been captured, all further mouse events will be sent to the capturing widget.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
Offset
|
The position of the mouse when captured. |
required |
mouse_position
instance-attribute
¶
mouse_position = mouse_position
The position of the mouse when captured.
MouseDown
¶
MouseEvent
¶
MouseEvent(
widget,
x,
y,
delta_x,
delta_y,
button,
shift,
meta,
ctrl,
screen_x=None,
screen_y=None,
style=None,
)
Bases: InputEvent
Sent in response to a mouse event.
- Bubbles
- Verbose
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
Widget | None
|
The widget under the mouse. |
required |
|
int
|
The relative x coordinate. |
required |
|
int
|
The relative y coordinate. |
required |
|
int
|
Change in x since the last message. |
required |
|
int
|
Change in y since the last message. |
required |
|
int
|
Indexed of the pressed button. |
required |
|
bool
|
True if the shift key is pressed. |
required |
|
bool
|
True if the meta key is pressed. |
required |
|
bool
|
True if the ctrl key is pressed. |
required |
|
int | None
|
The absolute x coordinate. |
None
|
|
int | None
|
The absolute y coordinate. |
None
|
|
Style | None
|
The Rich Style under the mouse cursor. |
None
|
offset
property
¶
screen_x
instance-attribute
¶
The absolute x coordinate.
screen_y
instance-attribute
¶
The absolute y coordinate.
get_content_offset
¶
get_content_offset(widget)
Get offset within a widget's content area, or None if offset is not in content (i.e. padding or border).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
Widget
|
Widget receiving the event. |
required |
Returns:
Type | Description |
---|---|
Offset | None
|
An offset where the origin is at the top left of the content area. |
get_content_offset_capture
¶
get_content_offset_capture(widget)
Get offset from a widget's content area.
This method works even if the offset is outside the widget content region.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
Widget
|
Widget receiving the event. |
required |
Returns:
Type | Description |
---|---|
Offset
|
An offset where the origin is at the top left of the content area. |
MouseMove
¶
MouseRelease
¶
MouseRelease(mouse_position)
Bases: Event
Mouse has been released.
- Bubbles
- Verbose
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
Offset
|
The position of the mouse when released. |
required |
mouse_position
instance-attribute
¶
mouse_position = mouse_position
The position of the mouse when released.
MouseScrollDown
¶
MouseScrollUp
¶
MouseUp
¶
Paste
¶
Paste(text)
Bases: Event
Event containing text that was pasted into the Textual application. This event will only appear when running in a terminal emulator that supports bracketed paste mode. Textual will enable bracketed pastes when an app starts, and disable it when the app shuts down.
- Bubbles
- Verbose
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
str
|
The text that has been pasted. |
required |
Print
¶
Bases: Event
Sent to a widget that is capturing print
.
- Bubbles
- Verbose
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
str
|
Text that was printed. |
required |
|
bool
|
|
False
|
Note
Python's print
output can be captured with
App.begin_capture_print
.
Ready
¶
Bases: Event
Sent to the App
when the DOM is ready and the first frame has been displayed.
- Bubbles
- Verbose
Resize
¶
Resize(
size, virtual_size, container_size=None, pixel_size=None
)
Bases: Event
Sent when the app or widget has been resized.
- Bubbles
- Verbose
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
Size
|
The new size of the Widget. |
required |
|
Size
|
The virtual size (scrollable size) of the Widget. |
required |
|
Size | None
|
The size of the Widget's container widget. |
None
|
container_size
instance-attribute
¶
container_size = (
size if container_size is None else container_size
)
The size of the Widget's container widget.
pixel_size
instance-attribute
¶
pixel_size = pixel_size
Size of terminal window in pixels if known, or None
if not known.
virtual_size
instance-attribute
¶
virtual_size = virtual_size
The virtual size (scrollable size) of the Widget.