从Jupyter文本小部件获取文本?

时间:2017-11-06 12:45:46

标签: python widget jupyter-notebook

我想创建一个交互式Jupyter笔记本。我想要一个Textarea,如果我输入一些文本,就会在我输入的文本上运行一个函数。我正在尝试:

text = widgets.Textarea(
    value='last',
    placeholder='Paste ticket description here!',
    description='String:',
    disabled=False
)
display(text)
text.on_displayed(show_matches(text.value))

然后我想用show_matches执行一些魔法并显示一个pandas数据帧(diplay(df))。但是,这仅在我明确运行单元格然后再使用预定义的last字符串运行时才会运行。我希望它能在我写完文本区域的时候运行。我该怎么做(例如:如何将value的{​​{1}}绑定到Python变量并在值发生变化时运行函数??

1 个答案:

答案 0 :(得分:2)

如果您想使用Text代替Textarea,可以通过on_submit方法连接回调。在文本字段中点击 Enter 后执行此操作。

from ipywidgets import interact, widgets
from IPython.display import display

text = widgets.Text(
    value='last',
    placeholder='Paste ticket description here!',
    description='String:',
    disabled=False
)
display(text)

def callback(wdgt):
    # replace by something useful
    display(wdgt.value)

text.on_submit(callback)