Mat*_*teo 2 python ipython jupyter jupyter-notebook ipywidgets
我创建一个交互式的jupyter notebook使用ipython widgets,并希望用户从一定数量的复选框选择。我正在使用下面的代码来可视化HBox包含复选框的内容。
num_checks = 10
cb_cont = widgets.HBox(background_color='red',height='100px',width='100%')
checkboxes = []
for f in range(num_checks):
checkboxes.append(\
widgets.Checkbox(description = 'Checkbox [%d]'%(f), \
value=False, width=50))
cb_cont.children=[i for i in checkboxes]
display(cb_cont)
Run Code Online (Sandbox Code Playgroud)
以下是上述代码输出的屏幕截图:
如您所见,框的内容溢出并超出了容器的宽度。
我可以通过设置更改行为overflow_x属性为下列情况之一:['visible', 'hidden', 'scroll', 'auto', 'initial', 'inherit', '']。
例如,cb_cont.overflow_x = 'scroll'导致以下输出窗口:
其中内容不会溢出但变得不可见并且可以滚动。
如何设置框的属性以可视化不适合换行符的内容?
显然,我可以使用多个HBox对象,每个对象都包含适合窗口大小的最大复选框数,但是由于一系列原因,这不是想要的解决方案:
我在小部件上遇到了同样的问题,在玩弄了各种 Box 属性之后,我想出了以下几点:
您需要设置以下属性:
display:'内联弹性'flex_flow:'行包装'这对我有任意数量的复选框(我尝试了 100 个)。另一方面,设置 height 属性不是很有用。您需要根据复选框的数量或屏幕分辨率来调整高度。
import ipywidgets as widgets
from ipywidgets import *
from IPython.display import display
num_checks = 50
cb_cont = HBox(layout=Layout(width='100%',display='inline-flex',flex_flow='row wrap'))
#cb_cont.overflow_x = 'scroll'
checkboxes = []
for f in range(num_checks):
checkboxes.append(\
widgets.Checkbox(description = 'Checkbox [%d]'%(f), \
value=False, width=50))
cb_cont.children=[i for i in checkboxes]
display(cb_cont)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6806 次 |
| 最近记录: |