如何下车和放置 ipywidgets
How to alight and place ipywidgets
有没有办法控制 ipywidgets 的放置和对齐(在 jupyter notebook 中)?
from ipywidgets import widgets
from IPython.display import Javascript, display
event_type_ui = widgets.Text(value='open', description='Test Event')
platform_ui = widgets.Text(value='Android', description='Control Event')
display(event_type_ui)
display(platform_ui)
我想指定一个偏移量(以像素为单位?)以允许标签适合并使两个控件垂直对齐。
ipywidgets
的 layout and styling documentation 说:
Every Jupyter interactive widget has a layout attribute exposing a number of css properties that impact how widgets are laid out.
我能够引导它对齐标签:
from ipywidgets import Text, HBox, VBox, Box
from IPython.display import display
widget1 = Text(value='Cats', description='Test Event', layout='margin-right:5px')
widget2 = Text(value='Oranges', description='Another Test Event')
widget1.width = '200px'
widget2.width = '150px'
display(VBox([widget1, widget2]))
制作这个:
但总的来说,我似乎不能直接定位描述标签的布局属性,只能定位整个小部件本身。
经过一些摆弄,我得到了这个:
之前:
之后:
如果有兴趣,这是一个复制粘贴片段:
from ipywidgets import widgets
from IPython.display import Javascript, display
align_kw = dict(
_css = (('.widget-label', 'min-width', '20ex'),),
margin = '0px 0px 5px 12px'
)
platform_ui = widgets.Dropdown(description = 'platform',options=['iPhone','iPad','Android'], **align_kw)
event_type_ui = widgets.Text(value='open', description='Test Event', **align_kw)
os_version_ui = widgets.Text(value='iOS9', description='Operating System', **align_kw)
refresh_ui = widgets.Checkbox(description='Force Refresh', **align_kw)
display(platform_ui,event_type_ui,os_version_ui,refresh_ui)
ipywidgets还有一个add_class可以在你真正需要的时候用来入坑:
import ipywidgets as widgets
from IPython.display import display, HTML
widget_list={}
for label in ("longish description","brief"):
widget_list[label]=widgets.Text(description=label)
widget_list[label].add_class("balanced-text")
display(HTML("<style>div.balanced-text .widget-label {max-width:200px; width:200px}</style>"))
display(widgets.VBox(list(widget_list.values())))
有没有办法控制 ipywidgets 的放置和对齐(在 jupyter notebook 中)?
from ipywidgets import widgets
from IPython.display import Javascript, display
event_type_ui = widgets.Text(value='open', description='Test Event')
platform_ui = widgets.Text(value='Android', description='Control Event')
display(event_type_ui)
display(platform_ui)
我想指定一个偏移量(以像素为单位?)以允许标签适合并使两个控件垂直对齐。
ipywidgets
的 layout and styling documentation 说:
Every Jupyter interactive widget has a layout attribute exposing a number of css properties that impact how widgets are laid out.
我能够引导它对齐标签:
from ipywidgets import Text, HBox, VBox, Box
from IPython.display import display
widget1 = Text(value='Cats', description='Test Event', layout='margin-right:5px')
widget2 = Text(value='Oranges', description='Another Test Event')
widget1.width = '200px'
widget2.width = '150px'
display(VBox([widget1, widget2]))
制作这个:
但总的来说,我似乎不能直接定位描述标签的布局属性,只能定位整个小部件本身。
经过一些摆弄,我得到了这个:
之前:
之后:
如果有兴趣,这是一个复制粘贴片段:
from ipywidgets import widgets
from IPython.display import Javascript, display
align_kw = dict(
_css = (('.widget-label', 'min-width', '20ex'),),
margin = '0px 0px 5px 12px'
)
platform_ui = widgets.Dropdown(description = 'platform',options=['iPhone','iPad','Android'], **align_kw)
event_type_ui = widgets.Text(value='open', description='Test Event', **align_kw)
os_version_ui = widgets.Text(value='iOS9', description='Operating System', **align_kw)
refresh_ui = widgets.Checkbox(description='Force Refresh', **align_kw)
display(platform_ui,event_type_ui,os_version_ui,refresh_ui)
ipywidgets还有一个add_class可以在你真正需要的时候用来入坑:
import ipywidgets as widgets
from IPython.display import display, HTML
widget_list={}
for label in ("longish description","brief"):
widget_list[label]=widgets.Text(description=label)
widget_list[label].add_class("balanced-text")
display(HTML("<style>div.balanced-text .widget-label {max-width:200px; width:200px}</style>"))
display(widgets.VBox(list(widget_list.values())))