3

我正在尝试制作 VBox 小部件,并在单击按钮时添加一个带有文本的新行。

我尝试以下代码

import ipywidgets as wg
from ipywidgets import Layout
from IPython.display import display

vb = wg.VBox([wg.Text('1'),wg.Text('2')])
btn = wg.Button(description = 'Add') 

def on_bttn_clicked(b):        
    vb.children=tuple(list(vb.children).append(wg.Text('3'))) 

btn.on_click(on_bttn_clicked)
display(vb, btn)

list(hb.children)

但是分配“hb.children =”不起作用......有没有办法在同一个单元格中编辑带有代码的容器小部件?

4

1 回答 1

5

您可以使用简单的加号来连接两个列表。

vb.children=tuple(list(vb.children) + [new_button])

因此,您的完整脚本将如下所示:

import ipywidgets as wg
from ipywidgets import Layout
from IPython.display import display

vb = wg.VBox([wg.Text('1'),wg.Text('2')])
btn = wg.Button(description = 'Add') 

def on_bttn_clicked(b):        
    vb.children=tuple(list(vb.children) + [wg.Text('3')]) 

btn.on_click(on_bttn_clicked)
display(vb, btn)

list(vb.children)
于 2018-05-23T07:53:06.237 回答