2017-02-10 1 views
3

Jupyter/IPython 노트북에 파이썬 코드를위한 간단한 사용자 인터페이스를 작성하려고합니다. 놀라운 ipywidgets을 사용하고 있습니다. 우연히 <button class="close">×</button> (위젯의 왼쪽에 X)을 클릭하여 사용자가 위젯을 지우지 못하도록하는 방법을 찾아야합니다. 나는 이것을하기위한 간단한 방법을 찾기 위해 몇 시간을 보냈다.Jupyter 노트북에서 ipywidget의 위젯 지우기 버튼을 제거하거나 비활성화하려면 어떻게합니까?

Image of slider with widget clear button X

:

import ipywidgets 
import IPython.display 

w = ipywidgets.IntSlider() 

IPython.display.display(w) 

결과 슬라이더의 좌측 위젯 클리어 버튼 X와 슬라이더된다 : 여기 단일 Jupyter 노트북 세포에서 문제의 단순한 최소 예입니다 사용자가 실수로 위젯을 지울 수 없도록 위젯 지우기 버튼을 제거하거나 비활성화하려면 어떻게합니까?

+0

맞춤형 위젯을 살펴 보거나 자바 스크립트 해킹을 사용하여 숨길 수 있습니까? –

답변

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에 크게 영향을 받았습니다.

관련 문제