我正在尝试在Jupyter / IPython笔记本中为Python代码编写一个简单的用户界面。我正在使用惊人的ipywidgets。我需要找到一种方法来阻止用户通过意外点击<button class="close">×</button>
(小部件左侧的X
)来清除小部件。我花了几个小时寻找一种简单的方法来做到这一点。以下是单个Jupyter笔记本单元中问题的简单示例:
import ipywidgets
import IPython.display
w = ipywidgets.IntSlider()
IPython.display.display(w)
结果是一个滑块,滑块左侧的小部件清除按钮X
:
Image of slider with widget clear button X
如何删除或禁用窗口小部件清除按钮,以便用户不会意外清除窗口小部件?
答案 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的启发,这是关于隐藏所有输入单元格。