Skip to main content

Form / Visible

Use "visible" property to control whether form element should be shown / hidden.

from h2o_wave import main, app, Q, ui


@app('/demo')
async def serve(q: Q):
if not q.client.initialized:
q.page['example'] = ui.form_card(box='1 1 4 7', items=[
ui.text_xl(content='First text'),
ui.text_l(content='Second text'),
ui.text_m(content='Third text'),
ui.text_s(content='Fourth text'),
ui.inline([
ui.button(name='left1', label='Left1'),
ui.button(name='left2', label='Left2'),
ui.button(name='left3', label='Left3'),
]),
ui.buttons(justify='end', items=[
ui.button(name='right1', label='Right1'),
ui.button(name='right2', label='Right2'),
ui.button(name='right3', label='Right3'),
]),
ui.buttons(items=[ui.button(name='show', label='Show'), ui.button(name='hide', label='Hide')])
])
q.client.initialized = True
items = q.page['example'].items
items_to_hide = [
items[0].text_xl,
items[2].text_m,
items[4].inline.items[0].button,
items[5].buttons.items[2].button,
]
if q.args.hide:
for i in items_to_hide:
i.visible = False
if q.args.show:
for i in items_to_hide:
i.visible = True
await q.page.save()