散景取消选中复选框

时间:2019-04-12 00:19:10

标签: 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 个答案:

答案 0 :(得分:1)

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)

checkbox_group_2的active值示例:

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