context_menu_documentation.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. from nicegui import ui
  2. from . import doc
  3. @doc.demo(ui.context_menu)
  4. def main_demo() -> None:
  5. with ui.image('https://picsum.photos/id/377/640/360'):
  6. with ui.context_menu():
  7. ui.menu_item('Flip horizontally')
  8. ui.menu_item('Flip vertically')
  9. ui.separator()
  10. ui.menu_item('Reset', auto_close=False)
  11. @doc.demo('Context menus with dynamic content', '''
  12. To show a context menu with content that changes dynamically, e.g. based on the position of the mouse,
  13. it is recommended to re-use the same context menu instance.
  14. This demo shows how to clear the context menu and add new items to it.
  15. ''')
  16. def update_context_menu() -> None:
  17. from nicegui import events
  18. def update_menu(e: events.MouseEventArguments) -> None:
  19. context_menu.clear()
  20. with context_menu:
  21. ui.menu_item(f'Add circle at ({e.image_x:.0f}, {e.image_y:.0f})')
  22. source = 'https://picsum.photos/id/377/640/360'
  23. with ui.interactive_image(source, on_mouse=update_menu, events=['contextmenu']):
  24. context_menu = ui.context_menu()
  25. doc.reference(ui.context_menu)