我定义了这个面板小部件:
import panel as pn
demo = pn.widgets.Select(name='Demo', options=datasource)
当数据源也更新时,如何强制小部件更新? 我尝试过这个:
demo.param.update()
在函数内部也更改了数据源,但它不起作用。有什么建议么?谢谢你。
如果数据源也是面板对象,可以这样做:
def update_options(event):
demo.options = event.new
datasource.param.watch(update_options, 'value')
仅供其他人参考:
import panel as pn
demo = pn.widgets.Select(name='Demo', options=datasource)
...
# after changing the datasource do:
demo.options = datasource
我可以通过使用 param 作为回调中的方法并稍后定义小部件来做到这一点。所以,就像:
demo = param.Selector(objects=[])
@pn.depends('demo')
def _func(self):
new_options = []
for i in something:
option = something*2
new_options.append(option)
self.param.demo.optons = new_options
....
widgets = {'demo': pn.widgets.Select}
layout = pn.template.VanillaTemplate(sidebar=pn.Column(pn.WidgetBox(pn.Param(widgets=widgets)))