main.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/usr/bin/env python3
  2. from nice_gui import ui
  3. from datetime import datetime
  4. from matplotlib import pyplot as plt
  5. with ui.card():
  6. ui.label('Interactive elements', 'h5')
  7. with ui.row():
  8. with ui.column():
  9. ui.button('Click me!', icon='touch_app', on_click=lambda: output.set_text('Click'))
  10. ui.checkbox('Check me!', on_change=lambda e: output.set_text('Checked' if e.value else 'Unchecked'))
  11. ui.switch('Switch me!', on_change=lambda e: output.set_text('Switched' if e.value else 'Unswitched'))
  12. ui.slider(0, 100, on_change=lambda e: output.set_text(e.value))
  13. ui.input('Text input', on_change=lambda e: output.set_text(e.value))
  14. ui.input('Number input', on_change=lambda e: output.set_text(e.value), type='number')
  15. with ui.column():
  16. ui.radio(['A', 'B', 'C'], on_change=lambda e: output.set_text(e.value))
  17. ui.select(['1', '2', '3'], on_change=lambda e: output.set_text(e.value))
  18. with ui.row():
  19. ui.label('Output:')
  20. output = ui.label()
  21. with ui.card():
  22. ui.label('Timer', 'h5')
  23. with ui.row():
  24. ui.icon('far fa-clock')
  25. time = ui.label()
  26. ui.timer(0.1, lambda: time.set_text(datetime.now().strftime("%X")))
  27. with ui.card():
  28. ui.label('Matplotlib', 'h5')
  29. with ui.plot(close=False) as plot:
  30. plt.title('Some plot')
  31. plt.plot(range(10), [x**2 for x in range(10)])
  32. def update_plot():
  33. plt.title('Some plot with a second curve')
  34. plt.plot(range(10), [100 - x**2 for x in range(10)])
  35. plot.update()
  36. ui.timer(3.0, update_plot, once=True)
  37. ui.run()