我正在使用ipython widgets
创建交互式jupyter notebook
,并希望用户从一定数量的复选框中进行选择。我正在使用下面的代码来显示包含复选框的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)
以下是上述代码输出的屏幕截图:
如您所见,盒子的内容溢出并超出了容器的宽度。
我可以通过将overflow_x
属性设置为以下之一来更改行为:['visible', 'hidden', 'scroll', 'auto', 'initial', 'inherit', '']
。
例如,cb_cont.overflow_x = 'scroll'
会产生以下输出窗口:
其中内容不会溢出但会变得不可见并且可以滚动。
如何设置框的属性以显示不适合换行符的内容?
显然,我可以使用多个HBox
个对象,每个对象包含适合窗口大小的最大数量的复选框,但由于一系列原因,这不是理想的解决方案:
答案 0 :(得分:4)
我对小部件有同样的问题,在玩各种Box属性之后,这就是我想出的:
您需要设置以下属性:
display
:' inline-flex' flex_flow
:' row wrap' 这对我来说有任意数量的复选框(我尝试过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)
答案 1 :(得分:0)
您可以使用百分比表示宽度(和高度):
cb_cont = widgets.HBox(background_color='red',height='100px',width='100%')
并设置cb_cont.overflow_x = 'auto'