Javascriptを実行するとアウトプットセルの行が増える
これがとても面倒だった。上の画像のように、Widgetのボタンを押すとからの行がセルのアウトプットに表示されてしまう。Jupyter Dashboard上から使おうと思っているのに、表示が崩れてしまって困った。
widgets.Output を使って、出力を瞬間で消す。
from IPython.display import Javascript, display
from ipywidgets import widgets
out = widgets.Output()
def run_all(ev):
    with out:
        display(Javascript('IPython.notebook.execute_all_cells()'))
    out.clear_output()
button = widgets.Button(description="Run All")
button.on_click(run_all)
widgets.VBox([button, out])widgets.Outputを使えば、表示させた瞬間にclear_outputできる。これで問題は解決。

 
  
  
  
  


コメント