如何为面板添加 CustomJS 回调?
How to add a CustomJS callback for a Panel?
如何为 Bokeh 面板添加 CustomJS 回调?例如,说我想要
根据选项卡中当前选定的面板更改 bokeh.model.Div 中的文本。
我天真的尝试是这样的:
div = Div(text='Test Div', width=100, height=100)
panel = Panel(child=plot, title=plot.title)
callback = CustomJS(args=dict(div=div), code='div.text = "change successful!";')
panel.js_on_event(events.Tap, callback)
但这显然行不通,所以我想知道是否有人可以更正此示例?
我认为一般的做法是写一个回调来在活动面板发生变化时进行注册。如果您的面板位于 "Tabs" 对象中,则只需编写 CustomJS(如果您使用服务器,则可以编写基于 python 的回调)。下面的简单示例。
div = Div(text="Pannel 1 is active")
p1text = Div(text="this is Panel 1")
p2text = Div(text="this is Panel 2")
p1 = Panel(child=p1text,title="Panel 1")
p2 = Panel(child=p2text,title="Panel 2")
tabs = Tabs(tabs=[p1,p2])
code = """
var active = tabs.active + 1;
div.text = "Panel "+active+" is active"
"""
callback = CustomJS(args={'tabs':tabs,'div':div}, code=code)
tabs.js_on_change('active',callback)
show(row(div,tabs))
如何为 Bokeh 面板添加 CustomJS 回调?例如,说我想要 根据选项卡中当前选定的面板更改 bokeh.model.Div 中的文本。 我天真的尝试是这样的:
div = Div(text='Test Div', width=100, height=100)
panel = Panel(child=plot, title=plot.title)
callback = CustomJS(args=dict(div=div), code='div.text = "change successful!";')
panel.js_on_event(events.Tap, callback)
但这显然行不通,所以我想知道是否有人可以更正此示例?
我认为一般的做法是写一个回调来在活动面板发生变化时进行注册。如果您的面板位于 "Tabs" 对象中,则只需编写 CustomJS(如果您使用服务器,则可以编写基于 python 的回调)。下面的简单示例。
div = Div(text="Pannel 1 is active")
p1text = Div(text="this is Panel 1")
p2text = Div(text="this is Panel 2")
p1 = Panel(child=p1text,title="Panel 1")
p2 = Panel(child=p2text,title="Panel 2")
tabs = Tabs(tabs=[p1,p2])
code = """
var active = tabs.active + 1;
div.text = "Panel "+active+" is active"
"""
callback = CustomJS(args={'tabs':tabs,'div':div}, code=code)
tabs.js_on_change('active',callback)
show(row(div,tabs))