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