我的问题是关于交互式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世界中的每一个!)加入印刷区域,你能帮助我施展它吗?
答案 0 :(得分: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)