Python面板如何强制更新widget.Select

问题描述 投票:0回答:3

我定义了这个面板小部件:

import panel as pn
demo = pn.widgets.Select(name='Demo', options=datasource)

当数据源也更新时,如何强制小部件更新? 我尝试过这个:

demo.param.update()

在函数内部也更改了数据源,但它不起作用。有什么建议么?谢谢你。

python select widget panel
3个回答
1
投票

如果数据源也是面板对象,可以这样做:

def update_options(event):
    demo.options = event.new

datasource.param.watch(update_options, 'value')

0
投票

仅供其他人参考:

import panel as pn
demo = pn.widgets.Select(name='Demo', options=datasource)

...
# after changing the datasource do:
demo.options = datasource

0
投票

我可以通过使用 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)))
© www.soinside.com 2019 - 2024. All rights reserved.