您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

更改另一个选择小部件时,如何自动更新下拉选择小部件?(Python面板pyviz)

更改另一个选择小部件时,如何自动更新下拉选择小部件?(Python面板pyviz)

因此,花了我很多时间才发现这个问题,但是 ,因此它会不断侦听是否发生更改,并且应该对其他列表进行更新。 在这种情况下:

@pn.depends(continent.param.value, watch=True)

整个例子:

_countries = {
    'Africa': ['Ghana', 'Togo', 'South Africa'],
    'Asia'  : ['China', 'Thailand', 'Japan'],
    'Europe': ['Austria', 'Bulgaria', 'Greece']
}

continent = pn.widgets.Select(
    value='Asia', 
    options=['Africa', 'Asia', 'Europe']
)

country = pn.widgets.Select(
    value=_countries[continent.value][0], 
    options=_countries[continent.value]
)

@pn.depends(continent.param.value, watch=True)
def _update_countries(continent):
    countries = _countries[continent]
    country.options = countries
    country.value = countries[0]

pn.Row(continent, country)

页面上的GoogleMapViewer示例为我指明了正确的方向:选择器在另一个选择器更改后更新

相同的答案,但以类的形式:

class GoogleMapViewer(param.Parameterized):

    continent = param.Selector(default='Asia', objects=['Africa', 'Asia', 'Europe'])

    country = param.Selector(default='China', objects=['China', 'Thailand', 'Japan'])

    _countries = {'Africa': ['Ghana', 'Togo', 'South Africa'],
                  'Asia'  : ['China', 'Thailand', 'Japan'],
                  'Europe': ['Austria', 'Bulgaria', 'Greece']}

    @param.depends('continent', watch=True)
    def _update_countries(self):
        countries = self._countries[self.continent]
        self.param['country'].objects = countries
        self.country = countries[0]

viewer = GoogleMapViewer(name='Google Map Viewer')
pn.Row(viewer.param)
python 2022/1/1 18:27:55 有192人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶