我想知道是否有一种通过python回调更新panel窗格内容的方法。
如果我以以下方式定义Parameterized自定义类:
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)产量:

但是,当我在下拉列表中选择另一个条目时,右边的文本不会被更新:

我知道参数已经更新,text回调(通过调试)被触发。然而,在我的笔记本上没有任何更新。
我觉得这个例子和文档中的正弦波例子(https://panel.holoviz.org/user_guide/Param.html)非常相似,但是我不明白我做错了什么。
理想情况下,这个答案也应该适用于panel.pane.HTML和panel.pane.Str。
发布于 2021-01-08 21:50:14
我在jupyter笔记本上尝试了你的代码,它起作用了:当下拉列表发生变化时,文本会被更新。
如果我在我的实验室里试一试,它不工作,但我有更多的这种情况。我觉得对我来说,这是一个简单的版本/安装程序。
所以我认为你的代码是正确的。您可以尝试更新您的jupyter笔记本或您的面板或param包。
https://stackoverflow.com/questions/65634571
复制相似问题