Sha*_*kti 9 python jupyter-notebook ipywidgets
我想从 jupyter 文本小部件捕获鼠标选择的文本。
import ipywidgets as widgets
text = widgets.Textarea(
value='Hello World',
description='String:',
disabled=False
)
display(text)
Run Code Online (Sandbox Code Playgroud)
在下面的示例中,当选择世界并完成左键单击时,我想捕获突出显示的文本。
使用 JS,您可以在select
原始text
小部件的事件上添加侦听器。然后所选文本将复制到sel_text
小部件中。最后你可以通过以下方式访问它sel_text.value
import ipywidgets as widgets
from IPython.display import Javascript
ta_description = 'String:'
text = widgets.Textarea(
value='Hello big World',
description=ta_description,
disabled=False
)
sel_text = widgets.Text(
value='',
description='selected text:',
disabled=True
)
display(text, sel_text)
jscript = f'''
function put2widget(arg) {{
var manager = window.IPython.WidgetManager._managers[0];
var ta = manager.get_model('{sel_text.model_id}');
ta.then(function(model) {{
model.set('value', arg)
model.save()
}});
}}
function getSelection(event) {{
const selection = event.target.value.substring(event.target.selectionStart, event.target.selectionEnd);
put2widget(selection)
}}
const area = document.querySelectorAll('label[title="{ta_description}"]')[0].parentNode.getElementsByTagName('textarea')[0]
area.addEventListener("select", getSelection);
'''
Javascript(jscript)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
642 次 |
最近记录: |