tbc*_*tbc 7 javascript python bokeh
我有一个Bokeh应用程序,它利用各种小部件事件的Python回调.对于某些事件,我想在回调Python函数之前执行一些JavaScript代码.这可能吗?
在这种情况下,Python回调可能会长时间运行,并且我想在长时间运行的Python代码执行之前和之后启动和停止Javascript微调器对象.
从Bokeh 1.0.4开始,"忙"/"完成"事件(启用触发微调器或其他UI事件等功能)仍然是一个开放的功能请求.
与此同时,最好的办法是使用一些"虚拟"模型来触发CustomJS回调.例如,您可以添加一个不可见的字形,并CustomJS在其上触发任何属性作为"忙"事件的代理.这很笨重,但可以使用.
这是一个非常粗略的大纲示例.第一个警报会立即弹出.关闭它,5秒后会弹出下一个警报.
import time
from bokeh.io import curdoc
from bokeh.layouts import column
from bokeh.models import Button, CustomJS
from bokeh.plotting import figure
p = figure()
p.circle([1,2,3,4,5], [2,6,3,1,6])
dummy = p.circle([1], [2], alpha=0)
dummy.glyph.js_on_change('size', CustomJS(code="""
alert(cb_obj.size.value)
"""))
b = Button()
def cb():
dummy.glyph.size = 10
time.sleep(5)
dummy.glyph.size = 20
b.on_click(cb)
curdoc().add_root(column(b, p))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1533 次 |
| 最近记录: |