现在,我尝试使用自定义按钮简单地取消选中“散景”复选框。
但是我得到了意想不到的结果:框未在选中状态下创建,并且按钮未清除复选框。
这是因为我误解了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.
理想情况下,我希望选中另一个组中的一个时不要选中它们。 感谢任何帮助。
答案 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