JupyterでボタンからJavascriptを実行して追加のアウトプットをさせない方法

Python
スポンサーリンク

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できる。これで問題は解決。

参考にしたサイト

コメント

タイトルとURLをコピーしました