1
0

menu_documentation.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. from nicegui import ui
  2. from . import doc
  3. @doc.demo(ui.menu)
  4. def main_demo() -> None:
  5. with ui.row().classes('w-full items-center'):
  6. result = ui.label().classes('mr-auto')
  7. with ui.button(icon='menu'):
  8. with ui.menu() as menu:
  9. ui.menu_item('Menu item 1', lambda: result.set_text('Selected item 1'))
  10. ui.menu_item('Menu item 2', lambda: result.set_text('Selected item 2'))
  11. ui.menu_item('Menu item 3 (keep open)',
  12. lambda: result.set_text('Selected item 3'), auto_close=False)
  13. ui.separator()
  14. ui.menu_item('Close', menu.close)
  15. @doc.demo('Client-side auto-close', '''
  16. Use the `auto-close` prop to automatically close the menu on any click event directly without a server round-trip.
  17. ''')
  18. def auto_close():
  19. with ui.button(icon='menu'):
  20. with ui.menu().props('auto-close'):
  21. toggle = ui.toggle(['fastfood', 'cake', 'icecream'], value='fastfood')
  22. ui.icon('', size='md').bind_name_from(toggle, 'value')
  23. @doc.demo('Menu with sub-menus', '''
  24. You can use a `ui.menu` nested inside a `ui.menu_item` to created nested sub-menus.
  25. The "anchor" and "self" props can be used to position the sub-menu.
  26. Make sure to disable `auto-close` on the corresponding menu item to keep the menu open while navigating the sub-menu.
  27. ''')
  28. def submenus():
  29. with ui.button(icon='menu'):
  30. with ui.menu():
  31. ui.menu_item('Option 1')
  32. ui.menu_item('Option 2')
  33. with ui.menu_item('Option 3', auto_close=False):
  34. with ui.item_section().props('side'):
  35. ui.icon('keyboard_arrow_right')
  36. with ui.menu().props('anchor="top end" self="top start" auto-close'):
  37. ui.menu_item('Sub-option 1')
  38. ui.menu_item('Sub-option 2')
  39. ui.menu_item('Sub-option 3')
  40. doc.reference(ui.menu, title='Reference for ui.menu')
  41. doc.reference(ui.menu_item, title='Reference for ui.menu_item')