Боке снять флажок - PullRequest
       11

Боке снять флажок

0 голосов
/ 12 апреля 2019

Сейчас я пытаюсь снять флажок Bokeh, используя пользовательскую кнопку.

Но я получаю неожиданные результаты: ящики не создаются в проверенном состоянии, и кнопка не снимает флажки.

Это потому, что я неправильно понимаю атрибут active?

from bokeh.models.widgets import CheckboxGroup, Button
from bokeh.layouts import column
from bokeh.io import curdoc
from bokeh.plotting import show

checkbox_group_1 = CheckboxGroup(labels=["Group 1 Button"], active=[1])
checkbox_group_2 = CheckboxGroup(labels=["Group 2 Button A", "Group 2 Button B"], active=[1,1])
checkbox_group_3 = CheckboxGroup(labels=["Group 3 Button A", "Group 3 Button B"], active=[1,1])


button = Button(label="Foo", button_type="success")

def buttonclick():
    checkbox_group_1.active = [0]
    checkbox_group_2.active = [0,0]
    checkbox_group_3.active = [0,0]

button.on_click(buttonclick)


layout=column(checkbox_group_1,checkbox_group_2,checkbox_group_3, button)
curdoc().add_root(layout)


!powershell -command {'bokeh serve --show Buttoninteraction.ipynb'}
#I'm working within Jupyter notebook.

В идеале, я бы хотел, чтобы флажки были сняты, когда отмечен один из другой группы. Ценю любую помощь.

1 Ответ

1 голос
/ 12 апреля 2019

Атрибут active представляет собой список, который указывает индекс выбранных элементов. Таким образом, чтобы отменить выбор всех их просто используйте checkbox_group.active = []

from bokeh.models.widgets import CheckboxGroup, Button
from bokeh.layouts import column
from bokeh.io import curdoc
from bokeh.plotting import show

checkbox_group_1 = CheckboxGroup(labels = ["Group 1 Button"], active = [0])
checkbox_group_2 = CheckboxGroup(labels = ["Group 2 Button A", "Group 2 Button B"], active = [1])
checkbox_group_3 = CheckboxGroup(labels = ["Group 3 Button A", "Group 3 Button B"], active = [1])

button = Button(label = "Foo", button_type = "success")

def buttonclick():
    checkbox_group_1.active = []
    checkbox_group_2.active = []
    checkbox_group_3.active = []

button.on_click(buttonclick)

layout = column(checkbox_group_1, checkbox_group_2, checkbox_group_3, button)
curdoc().add_root(layout)

Пример значения active для checkbox_group_2:

value      selected
[0]        first 
[1]        second
[0, 1]     both
[]         None
...