RadioButtonGroup is unsynchronized with click

I am trying to update the style of a plot based on the state of a button. I started by experimenting with pn.widgets.RadioButtonGroup with two states: on and off. I found that when I click one of the states, the response is unsyncronized relative to the state clicked.

Here is my code, which is based in one the tutorials I found after googling the issue:

import panel as pn

off_on = pn.widgets.RadioButtonGroup(options=['off','on'], value='off')

def get_value(off_on):
    return off_on

widget = pn.Column("My button", off_on)
out = pn.Row(widget, pn.WidgetBox(get_value, width=300))

Here there is a video:

Here’s how I would do it:

import panel as pn

off_on = pn.widgets.RadioButtonGroup(options=['off','on'], value='off')
text_box = pn.widgets.TextInput(value="off", disabled=True)

def get_value(event):
    text_box.value =, "value")
pn.Column(off_on, text_box)

Thanks @ahuang11! Your example worked fine. Now I am trying to apply it to a plot, to control the visibility of the data. So far I have this:

off_on = pn.widgets.RadioButtonGroup(value='on', options=['on','off'])
text_box = pn.widgets.TextInput(value="on", disabled=True)

df = pd.DataFrame({
    "x": [1,2,3],
    "y": [1,2,3],
plot = df.hvplot.points(x="x", y="y")
# @pn.depends()
def get_value(event):
    text_box.value =
    if == 'off':
        plot.opts(alpha=1), "value")
out = pn.Row(plot, pn.Column(off_on,text_box))

The switch and texbox work as in your example, but it does not affect the plot option (alpha in this case). From other examples I have seen, I think I need to use a decorator somewhere but I am not sure (I just started using holoviz).

Check out: