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

lte*_*e__ 3 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))
Run Code Online (Sandbox Code Playgroud)

然后我想执行一些魔术show_matches并显示一个 Pandas 数据框 ( diplay(df))。但是,这仅在我显式运行单元格时运行,然后再次仅使用预定义的last字符串运行。我希望它在我写完文本区域时运行,并带有我写的文本。我怎样才能做到这一点(例如:我怎样才能绑定valueTextarea一个Python变量和运行功能,每当价值的变化)?

Imp*_*est 10

如果你想使用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)
Run Code Online (Sandbox Code Playgroud)