在输入文本时使bokeh TextInput回调响应

时间:2019-02-18 23:19:59

标签: python bokeh textinput

背景 on_change对象的TextInput方法的当前功能是在键入所有文本然后按下其他键之后运行回调。我想知道是否可以将TextInput对象配置为在键入/删除文本时运行回调。以下代码是一个最小的示例。

from bokeh.io import curdoc
from bokeh.layouts import widgetbox, column
from bokeh.models import TextInput, Button

button = Button(button_type='success')
ti = TextInput(title='enter text to enable button')
layout = column(
    widgetbox(ti),
    widgetbox(button))

button.disabled = True

def callback(attr, old, new):
    if ti.value != '':
        button.disabled = False
    else:
        button.disabled = True

ti.on_change('value', callback)

curdoc().add_root(layout)

这是相应应用程序的屏幕截图。

...

期望的行为是键入文本后立即激活该按钮。屏幕截图显示这没有发生。未显示出该按钮将在按下“ enter”键后变为活动状态。

1 个答案:

答案 0 :(得分:1)

从Bokeh 1.0.4开始,第一次输入文本时不会触发任何事件。

这似乎是一个合理的功能,并且可能不太容易实现(对于首次贡献者来说是个好问题,需要一些指导),因此我建议提出一个GitHub issue来请求该功能。