在Jupyter Notebook中控制交互式小部件的行为?

时间:2019-12-26 17:41:24

标签: python python-3.x jupyter-notebook widget jupyter

我想出了如何使用框将控件设置为多行的格式,并使用jQuery选择添加了一些不错的CSS样式,但是我不知道如何使我的小部件真正起作用。

Example widget rows

上一个代码单元产生一个字符串值列表,每个字符串值都应具有自己的控件行。然后,我希望用户能够删除,编辑,上/下移动或插入行。现在,更改任何值(例如,文本框,复选框或下拉菜单)都会在行的 all 中进行相同的更改。

这是我的简单代码:

from ipywidgets import Layout, Button, Text, Checkbox, Dropdown, Box, VBox

# Items flex proportionally to the weight and the left over space around the text
row_items = [
    Button(description='❌', tooltip='Delete this row', layout=Layout(width='auto')),
    Text(value='Lorem ipsum'),
    Checkbox(value=True, description='Include?'),
    Dropdown(options=['Bearing-Distance', 'Curve direction', 'Curve radius', 'Curve angle', 'Curve distance'], value='Bearing-Distance', description='Type:'),
    Button(description='⬆️', button_style='', tooltip='Move this row up', layout=Layout(width='auto')),
    Button(description='⬇️', button_style='', tooltip='Move this row down', layout=Layout(width='auto')),
    Button(description='➕', button_style='', tooltip='Insert a row below', layout=Layout(width='auto'))
 ]

box_layout = Layout(display='flex',
                    flex_flow='row',
                    align_items='stretch',
                    width='100%')
row = Box(children=row_items, layout=box_layout)
rows = []
rows = rows.append(row)
VBox([row, row, row, Button(description='✅ Submit')])

很显然,我不了解有关小部件如何工作的一些基本知识。任何对期望行为的帮助将不胜感激。预先感谢!

0 个答案:

没有答案