2017-11-06 5 views
0

대화 형 Jupyter 노트북을 만들고 싶습니다. Textarea를 가지고 싶습니다. 텍스트를 입력하면, 입력 한 텍스트에서 함수가 실행됩니다. 나는 시도하고있다 :Jupyter 텍스트 위젯에서 텍스트 가져 오기?

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와 마법을 수행하고 팬더 dataframe (diplay(df))을 표시합니다. 그러나 이것은 셀을 명시 적으로 실행 한 다음 미리 정의 된 last 문자열로만 다시 실행하면 실행됩니다. 내가 쓴 텍스트로 텍스트 영역에서 글쓰기를 마칠 때마다 실행하고 싶습니다. 어떻게해야합니까 (예 : Textareavalue을 파이썬 변수에 바인딩하고 값이 변경 될 때마다 함수를 실행하려면 어떻게해야합니까?)?

답변

0

Textarea 대신 Text을 사용하려면 on_submit 메서드를 통해 콜백을 연결할 수 있습니다. 이것은 을 입력하면 텍스트 필드에서 적중됩니다.

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)