Menu Widget¶
Menu provides nested dropdown menus via tui-menu.
Types¶
Menu– widget style/configurationMenuItem– leaf/group nodeMenuState– mutable navigation + event stateMenuEvent– emitted selection events
Building Menus¶
from pyratatui import MenuItem, MenuState
items = [
MenuItem.item("File", "file"),
MenuItem.group("Edit", [
MenuItem.item("Copy", "copy"),
MenuItem.item("Paste", "paste"),
]),
]
state = MenuState(items)
state.activate()
Rendering¶
from pyratatui import Menu
menu = Menu().dropdown_width(24)
frame.render_stateful_menu(menu, area, state)
Input Handling¶
events = state.handle_key(ev.code)
for e in events:
if e.kind == "Selected":
print("selected:", e.data)
Supported keys in handle_key:
UpDownLeftRightEnterEsc