我想创建一个交互式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变量并在值发生变化时运行函数??
答案 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)