import panel as pn pn.extension() button = pn.widgets.Button(name='Click me', button_type='primary') button button.clicks indicator = pn.indicators.LoadingSpinner(value=False, size=25) def update_indicator(event): if not event: return indicator.value = not indicator.value pn.bind(update_indicator, button, watch=True) pn.Column(button, indicator) def handle_click(clicks): return f'You have clicked me {clicks} times' pn.Column( button, pn.bind(handle_click, button.param.clicks), ) text = pn.widgets.TextInput(value='Ready') def b(event): text.value = 'Clicked {0} times'.format(button.clicks) button.on_click(b) pn.Row(button, text) pn.Row( *(pn.Column(*(pn.widgets.Button(name=p, button_type=p, button_style=bs) for p in pn.widgets.Button.param.button_type.objects)) for bs in pn.widgets.Button.param.button_style.objects) ) backward = pn.widgets.Button(name='\u25c0', width=50) forward = pn.widgets.Button(name='\u25b6', width=50) search = pn.widgets.Button(name='🔍', width=100) save = pn.widgets.Button(name="💾 Save", width=100) copy = pn.widgets.Button(name="Copy ✂️", width=100) pn.Row(backward, forward, search, save, copy) pn.Row( pn.widgets.Button(icon='alert-triangle-filled', button_type='warning', name='WARNING'), pn.widgets.Button(icon='bug', button_type='danger', name='Error') ) cash_icon = """ """ pn.widgets.Button(icon=cash_icon, button_type='success', name='Checkout', icon_size='2em') pn.Row(button.controls, button)