main.py 890 B

12345678910111213141516171819202122232425262728
  1. #!/usr/bin/env python3
  2. from pathlib import Path
  3. from nicegui import app, ui
  4. from nicegui.events import KeyEventArguments
  5. ui.query('.nicegui-content').classes('p-0') # remove padding from the main content
  6. folder = Path(__file__).parent / 'slides' # image source: https://pixabay.com/
  7. files = sorted(f.name for f in folder.glob('*.jpg'))
  8. state = {'index': 0}
  9. def handle_key(event: KeyEventArguments) -> None:
  10. if event.action.keydown:
  11. if event.key.arrow_right:
  12. state['index'] += 1
  13. if event.key.arrow_left:
  14. state['index'] -= 1
  15. state['index'] %= len(files)
  16. slide.set_source(f'slides/{files[state["index"]]}')
  17. app.add_static_files('/slides', folder) # serve all files in this folder
  18. slide = ui.image(f'slides/{files[state["index"]]}') # show the first image
  19. ui.keyboard(on_key=handle_key) # handle keyboard events
  20. ui.run()