test_v1.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #!/usr/bin/env python3
  2. from nicegui import ui
  3. with ui.card():
  4. ui.label('Hello, world!')
  5. with ui.card():
  6. ui.label('Events')
  7. ui.button('Click', on_click=lambda e: print(e, flush=True))
  8. ui.button('Notify', on_click=lambda _: ui.notify('Hello', closeBtn=True, type='info', color='red'))
  9. with ui.card():
  10. ui.label('Binding')
  11. class Model:
  12. value = 'foo'
  13. def set_value(self, value: str):
  14. self.value = value
  15. model = Model()
  16. label1 = ui.label('Label 1')
  17. label2 = ui.label('Label 2').bind_text_from(label1)
  18. label3 = ui.label('Label 3').bind_text_from(model, 'value')
  19. ui.button('Change label 1', on_click=lambda: label1.set_text(label1.text + '!'))
  20. ui.button('Change label 2', on_click=lambda: label2.set_text(label2.text + '!'))
  21. ui.button('Change label 3', on_click=lambda: label3.set_text(label3.text + '!'))
  22. ui.button('Change model', on_click=lambda: model.set_value(model.value + '!'))
  23. with ui.card():
  24. ui.label('Element gallery')
  25. ui.separator().classes('w-full')
  26. ui.icon('face')
  27. with ui.button('Click me!', on_click=lambda _: badge.set_text(int(badge.text) + 1)):
  28. badge = ui.badge('0', color='red').props('floating')
  29. ui.image('http://placeimg.com/640/360/tech').classes('w-full')
  30. c1 = ui.checkbox('Check A')
  31. c2 = ui.checkbox('Check B').bind_value_from(c1, 'value')
  32. ui.label('Visibility...').bind_visibility_from(c1, 'value')
  33. ui.button('Default', on_click=lambda: ui.colors())
  34. ui.button('Gray', on_click=lambda: ui.colors(primary='#555'))
  35. with ui.label('Tooltips...'):
  36. ui.tooltip('...are shown on mouse over').props('class=bg-orange')
  37. ui.html('<strong>HTML</strong>')
  38. ui.joystick(color='blue', size=50,
  39. on_start=lambda msg: print(msg, flush=True),
  40. on_move=lambda msg: coordinates.set_text(f"{msg['args']['data']['vector']['x']:.3f}, " +
  41. f"{msg['args']['data']['vector']['y']:.3f}"),
  42. on_end=lambda msg: coordinates.set_text('0, 0')).style('width: 15em')
  43. coordinates = ui.label('0, 0')
  44. ui.link('Google', 'https://www.google.com/')
  45. ui.link('Target', '#target')
  46. ui.link_target('target')
  47. ui.run(port=1234)