1

我使用参数化类来构建我的 Panel 仪表板。

我想使用CrossSelector,但是在查看库 Param 提供的选项时,此选择器似乎不可用。它似乎只有一个ListSelector

我如何使用 Param 获得这个 CrossSelector?

import param
import panel as pn

pn.extension()

class ValveExplorer(param.Parameterized):

    selected_features = param.ListSelector(
        default=[1, 3],
        objects=[1, 2, 3, 4],
    )

valve_explorer = ValveExplorer()  

# show list selector
pn.Row(valve_explorer.param['selected_features'])

这会产生以下默认 ListSelector,但我不想要这个。我想获得一个 CrossSelector 代替:
参数使用的默认多选

4

1 回答 1

1

Param 对每个 Selector 都有一个默认小部件,但您可以更改它。

您可以按如下方式覆盖此默认小部件,以使用pn.Param()获取示例中的 CrossSelector :

pn.Row(pn.Param(
    valve_explorer.param['selected_features'], 
    widgets={'selected_features': pn.widgets.CrossSelector}
))


在 SO 上找到的类似解决方案是使用 pn.panel():

pn.Row(pn.panel(
    valve_explorer.param['selected_features'], 
    widgets={'selected_features': pn.widgets.CrossSelector}
))


在此处查看有关在 Panel 中使用 Param 的更多文档:
https ://panel.pyviz.org/user_guide/Param.html

于 2019-09-15T11:18:30.417 回答