2017-02-10 14 views
3

私はJupyter/IPythonノートブックでPythonコード用のシンプルなユーザーインターフェイスを作成しようとしています。私は素晴らしいipywidgetsを使用しています。 <button class="close">×</button>(ウィジェットの左側にあるX)を誤ってクリックすることでユーザーがウィジェットを消去しないようにする方法を見つける必要があります。私はこれを行う簡単な方法を探して何時間も費やしました。ここでは、単一のJupyterノートセルにおける問題の簡単な、最小限の例です:Jupyterノートブックでipywidgetのウィジェットクリアボタンを削除または無効にする方法はありますか?

import ipywidgets 
import IPython.display 

w = ipywidgets.IntSlider() 

IPython.display.display(w) 

結果は、スライダの左にあるウィジェットクリアボタンXとスライダーです:

Image of slider with widget clear button X

ユーザーが間違ってウィジェットをクリアできないように、ウィジェットクリアボタンを削除または無効にするにはどうすればよいですか?

+0

カスタムウィジェットをスタイリングするか、JavaScriptのハックを適用して非表示にしますか? –

答えて

1

私は同じ問題を抱えていて、ハックで解決しました。だからここに私の解決策を降ろし:

を実行中のノートブックでは、セルにこのコードを実行します。

from IPython.display import HTML 

htmlscript_ipywidget_disable_closing = '''<script> 
disable = true 
function disable_ipyw_close(){ 
    if(disable){ 
     $('div.widget-area > div.prompt > button.close').hide() 
    } 
    else{ 
     $('div.widget-area > div.prompt > button.close').show()  
    } 
    disable = !disable 
} 
$(document).ready(disable_ipyw_close); 
</script> 

<form action="javascript:disable_ipyw_close()"><input style="opacity: 0.5" type="submit" value="Disable ipywidget closing"></form>''' 
# change opacity to 0 to hide this button itself 
HTML(htmlscript_ipywidget_disable_closing) 

ボタンは、これらのipywidget閉じるボタンの表示を切り替えることができます出力に表示されます。 これは、すべての入力セルを非表示にしていた最上位回答hereに非常に触発されました。

関連する問題