How do I use param.Action in panel?

Hi @ahuang11

Something like the below should do the trick

import holoviews as hv
import numpy as np
import panel as pn
import param

DEFAULT_PLAT = hv.Curve([0,1,2,3])

class App(param.Parameterized):
    value = param.Integer(default=3)
    set_random_value = param.Action(label="Random")

    settings_pane = param.Parameter()
    plot_pane = param.Parameter()
    view = param.Parameter()

    def __init__(self, **params):
        super().__init__(**params)

        self.set_random_value = self._set_random_value
        self.settings_pane = pn.Param(self, parameters=["value", "set_random_value"])
        self.plot_pane = pn.pane.HoloViews(DEFAULT_PLAT)
        self.view = pn.Column(self.plot_pane, self.settings_pane)

    @param.depends("value", watch=True)
    def _update_plot_pane(self):
        self.plot_pane.object = hv.Curve([0,1,2,self.value])

    def _set_random_value(self, event):
        self.value = int(np.random.rand(1) * 10)

App().view.servable()
1 Like