checkboxgroupコールバックで、アクティブなボタンのインデックスまたはラベルを取得するだけです。次に、if/elif/elseステートメントのチェーンを実行して、各ボタンに関連付ける機能を呼び出します。
EDIT:ここは、ボタングループでいくつかの簡単なものです:
は、ちょうど最後のボタンで何かをボタン経由
from bokeh.io import curdoc
from bokeh.models import CheckboxButtonGroup
a = CheckboxButtonGroup(labels=list('012'),active=[])
def stuff_0(in_active):
if in_active:
print 'do stuff'
else:
print 'undo stuff'
def stuff_1(in_active):
if in_active:
print 'yes'
else:
print 'no'
def stuff_2(in_active):
if in_active:
print 'banana'
else:
print 'apple'
stuff_list = [stuff_0,stuff_1,stuff_2]
def do_stuff(attr,old,new):
print attr,old,new
last_clicked_ID = list(set(old)^set(new))[0] # [0] since there will always be just one different element at a time
print 'last button clicked:', a.labels[last_clicked_ID]
last_clicked_button_stuff = stuff_list[last_clicked_ID]
in_active = last_clicked_ID in new
last_clicked_button_stuff(in_active)
a.on_change('active',do_stuff)
curdoc().add_root(a)
それともできるループをクリックし、すべてで何かを行うにはボタンをクリックするたびにボタンが表示されます:
def do_stuff(attr,old,new):
print attr,old,new
for i in [0,1,2]:
stuff = stuff_list[i]
in_active = i in new
stuff(in_active)
出典
2017-10-24 20:52:06
Seb
checkboxgroupコールバックとは、 'callback'属性のことですCustomJSオブジェクトを作成しますか?)これを行うには、checkboxgroupオブジェクトに設定した 'on_click'関数で行います(' on_click'関数内でクリックされた個々のボタンの参照方法を知ることができませんでした)。 – hhprogram
@hhprogram編集を参照してください、CheckboxButtonGroupでon_clickイベントは必要ありません。それらは実際のボタンではなく、ボタンとして表示されるチェックボックスのリストです。ちょうど1つのボケモデルです。チェックされたボックス/クリックされたボタンのリストの変更のみで対話できます。 – Seb