holoviz/param/panel:通过 python 回调更新 Str 或 HTML 窗格
holoviz/param/panel: updating Str or HTML panes via python callback
我想知道是否可以通过 python 回调更新 panel
窗格内容。
如果我按以下方式定义 Parameterized
自定义 class:
import panel as pn
pn.extension()
import param
class Myclass(param.Parameterized):
letter = param.ObjectSelector(
objects=['a', 'b', 'c', 'd'],
default='b',
)
@param.depends('letter')
def text(self):
return(pn.pane.Str(self.letter))
instance = Myclass()
如果我在我的笔记本中输出这个实例,我得到以下信息:
pn.Row(instance.param.letter, instance.text)
产量:
但是,当我select下拉列表中的另一个条目时,右侧的文本没有更新:
我知道参数已更新,text
回调已触发(通过调试)。然而,我的笔记本没有更新。
我觉得这个例子和文档中的正弦波例子非常相似(https://panel.holoviz.org/user_guide/Param.html),但是我不明白我做错了什么...
理想情况下,答案也应该适用于 panel.pane.HTML
以及 panel.pane.Str
。
我在 jupyter notebook 中尝试了您的代码并且它有效:文本会在下拉列表更改时更新。
如果我在我的 jupyter 实验室中尝试它,它不起作用,但我经常遇到这种情况。我认为对我来说这是一个 jupyter 版本/安装的东西。
所以我认为你的代码是正确的。您可以尝试更新您的 jupyter notebook 或您的面板或参数包。
我想知道是否可以通过 python 回调更新 panel
窗格内容。
如果我按以下方式定义 Parameterized
自定义 class:
import panel as pn
pn.extension()
import param
class Myclass(param.Parameterized):
letter = param.ObjectSelector(
objects=['a', 'b', 'c', 'd'],
default='b',
)
@param.depends('letter')
def text(self):
return(pn.pane.Str(self.letter))
instance = Myclass()
如果我在我的笔记本中输出这个实例,我得到以下信息:
pn.Row(instance.param.letter, instance.text)
产量:
但是,当我select下拉列表中的另一个条目时,右侧的文本没有更新:
我知道参数已更新,text
回调已触发(通过调试)。然而,我的笔记本没有更新。
我觉得这个例子和文档中的正弦波例子非常相似(https://panel.holoviz.org/user_guide/Param.html),但是我不明白我做错了什么...
理想情况下,答案也应该适用于 panel.pane.HTML
以及 panel.pane.Str
。
我在 jupyter notebook 中尝试了您的代码并且它有效:文本会在下拉列表更改时更新。
如果我在我的 jupyter 实验室中尝试它,它不起作用,但我经常遇到这种情况。我认为对我来说这是一个 jupyter 版本/安装的东西。
所以我认为你的代码是正确的。您可以尝试更新您的 jupyter notebook 或您的面板或参数包。