Python 3.x 如何在ipython/jupyter中将小部件添加到容器小部件

Python 3.x 如何在ipython/jupyter中将小部件添加到容器小部件,python-3.x,jupyter-notebook,ipywidgets,Python 3.x,Jupyter Notebook,Ipywidgets,我正在尝试制作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):

我正在尝试制作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=”不起作用。。。
有没有一种方法可以用同一单元格中的代码编辑容器小部件

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

vb.children=tuple(列表(vb.children)+[new_按钮])

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

将ipywidgets导入为wg
从ipywidgets导入布局
从IPython.display导入显示
vb=wg.VBox([wg.Text('1')、wg.Text('2'))
btn=wg.按钮(说明='Add')
单击(b)按钮上的def:
vb.children=tuple(list(vb.children)+[wg.Text('3'))
点击按钮时(点击按钮时)
显示(vb、btn)
列表(vb.children)

vb.children=tuple(list(vb.children)。append(wg.Text('3'))这一行的主要问题可能是:
list(vb.children)。append(wg.Text('3'))
return
None
,因此您将
None
传递给
tuple
构造函数方法。事实上,这应该会引发一个错误。请在此处共享该错误。是的@Abdou您是对的。append方法返回None。我在单击(b):temp=list(vb.children)temp.append(wg.Text)时修改了代码
def('3')vb.children=temp
现在可以了!@StanislavPopovych太好了!你应该回答你自己的问题=)