Панель + Param пользовательский виджет MultiFileSelector - PullRequest
1 голос
/ 20 января 2020

Я пытался и не смог преобразовать параметр MultiFileSelector в виджет, с которым можно взаимодействовать. Из этого урока я попробовал следующее.

class CustomExample(param.Parameterized):
    f = param.MultiFileSelector()

pn.Param(CustomExample.param, widgets={ 'f': pn.widgets.Multiselect})

Но я получаю ошибку,

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-11-bb344c131fb8> in <module>
      5     #select_number = param.Selector(objects=[0, 1, 10, 100])
      6 
----> 7 pn.Param(CustomExample.param, widgets={ 'f': pn.widgets.Multiselect})

AttributeError: module 'panel.widgets' has no attribute 'Multiselect'

Любые указатели будут хороши.

1 Ответ

0 голосов
/ 20 января 2020

Поскольку вы используете param , вы должны проверить, какой параметр наиболее близок к тому, что вы ищете в этом случае param.MultiFileSelector:

class CustomExample(param.Parameterized):
    file_selector = param.MultiFileSelector(path='*')

pn.Param(CustomExample.param['file_selector'])

Это будет показать следующий многофайловый селектор: standard multifile selector with param pyviz

Если вы хотите переключиться на другой селектор не по умолчанию, вы можете сделать это следующим образом:

class CustomExample(param.Parameterized):
    file_selector = param.MultiFileSelector(path='*')

pn.Param(
    CustomExample.param['file_selector'], 
    widgets={'file_selector': pn.widgets.CrossSelector},
))

Результирующий селектор: overwrite default multi file selector with the panel crosselector


Вы уже нашли эту документацию:
http://panel.holoviz.org/user_guide/Param.html

Но, возможно, также взгляните на эти SO-вопросы:
Получить другой виджет (не по умолчанию) при использовании param в параметризованном классе (панель параметров holoviz)

Каков наилучший способ изменить тип виджета в объекте hvplot / holoviews / panel?

...