Jupyter:如何在函数中打印到单元格,从JavaScript调用?

问题描述 投票:0回答:1

我的问题是关于交互式Jupyter笔记本。

我想显示JavaScript按钮,并通过按钮点击将内容打印到单元格。

我们可以使用ipywidgets轻松完成这项工作:

def OnClick(b=None): print 'qq'
b = widgets.Button(description='Button')
b.on_click(OnClick)
display(b)

但是,当我们跳到纯JavaScript时,事情就出错了。即我有JavaScript按钮,在on_click()事件处理程序中我使用内核交互,如:

var kernel = IPython.notebook.kernel;
kernel.execute('onClick()');         

回调被称为成功(我通过嘟嘟声检查),但是打印在单元格中没有输出,其中显示按钮。所以我想应该有一些神奇的东西(比如Python世界中的每一个!)加入印刷区域,你能不能帮助我施展它?

ipython jupyter-notebook ipython-notebook jupyter ipywidgets
1个回答
1
投票

关键是使用输出小部件

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

out = widgets.Output()

def OnClick():
    with out:
        print 'QQQ'

display(HTML('<a onclick="IPython.notebook.kernel.execute(\'OnClick()\')">Click!</a>'))
display(out)
© www.soinside.com 2019 - 2024. All rights reserved.