radio_documentation.py 959 B

123456789101112131415161718192021222324252627
  1. from nicegui import ui
  2. from . import doc
  3. @doc.demo(ui.radio)
  4. def main_demo() -> None:
  5. radio1 = ui.radio([1, 2, 3], value=1).props('inline')
  6. radio2 = ui.radio({1: 'A', 2: 'B', 3: 'C'}).props('inline').bind_value(radio1, 'value')
  7. @doc.demo('Inject arbitrary content', '''
  8. Thanks to the [`ui.teleport` element](teleport), you can use arbitrary content for the radio options.
  9. ''')
  10. def arbitrary_content():
  11. options = ['Star', 'Thump Up', 'Heart']
  12. radio = ui.radio({x: '' for x in options}, value='Star').props('inline')
  13. with ui.teleport(f'#{radio.html_id} > div:nth-child(1) .q-radio__label'):
  14. ui.icon('star', size='md')
  15. with ui.teleport(f'#{radio.html_id} > div:nth-child(2) .q-radio__label'):
  16. ui.icon('thumb_up', size='md')
  17. with ui.teleport(f'#{radio.html_id} > div:nth-child(3) .q-radio__label'):
  18. ui.icon('favorite', size='md')
  19. ui.label().bind_text_from(radio, 'value')
  20. doc.reference(ui.radio)