main.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. from nicegui import ui
  2. image_urls = [
  3. 'https://picsum.photos/300/300?1',
  4. 'https://picsum.photos/300/300?2',
  5. 'https://picsum.photos/300/300?3',
  6. ]
  7. tabs = {}
  8. def switch_tab(value):
  9. tabs['panels'].value = value
  10. # Create tab_bar object, but don't render it in a UI component
  11. tab_bar = ui.tabs()
  12. # tabs['A'] = tab_bar.tab('A')
  13. # tabs['B'] = tab_bar.tab('B')
  14. # tabs['C'] = tab_bar.tab('C')
  15. with ui.footer(value=False) as footer:
  16. ui.label('Footer')
  17. with ui.page_sticky(position='bottom-right', x_offset=20, y_offset=20):
  18. ui.button(on_click=footer.toggle, icon='contact_support').props('fab')
  19. with ui.tab_panels(tab_bar, value='A').classes('w-full') as panels:
  20. tabs['panels'] = panels
  21. with ui.tab_panel('A') as tabA:
  22. ui.label('Content of A').classes('text-center')
  23. with ui.card().classes('m-4 p-4 shadow-lg w-128 h-64 relative'):
  24. with ui.card().classes('w-full h-full absolute'):
  25. ui.image(image_urls[0]).classes('w-full h-full')
  26. ui.button(on_click=lambda: switch_tab('C'), icon='arrow_back').classes('absolute top-1/2 left-2')
  27. ui.button(on_click=lambda: switch_tab('B'), icon='arrow_forward').classes('absolute top-1/2 right-2')
  28. with ui.tab_panel('B') as tabB:
  29. ui.label('Content of B').classes('text-center')
  30. with ui.card().classes('m-4 p-4 shadow-lg w-128 h-64 relative'):
  31. with ui.card().classes('w-full h-full absolute'):
  32. ui.image(image_urls[1]).classes('w-full h-full')
  33. ui.button(on_click=lambda: switch_tab('C'), icon='arrow_forward').classes('absolute top-1/2 right-2')
  34. ui.button(on_click=lambda: switch_tab('A'), icon='arrow_back').classes('absolute top-1/2 left-2')
  35. with ui.tab_panel('C') as tabC:
  36. ui.label('Content of C').classes('text-center')
  37. with ui.card().classes('m-4 p-4 shadow-lg w-128 h-64 relative'):
  38. with ui.card().classes('w-full h-full absolute'):
  39. ui.image(image_urls[2]).classes('w-full h-full')
  40. ui.button(on_click=lambda: switch_tab('A'), icon='arrow_forward').classes('absolute top-1/2 right-2')
  41. ui.button(on_click=lambda: switch_tab('B'), icon='arrow_back').classes('absolute top-1/2 left-2')
  42. ui.run()