Python 3.x 如何在ipython/jupyter中将小部件添加到容器小部件
我正在尝试制作VBox小部件,并在单击按钮时添加一个包含文本的新行 我尝试以下代码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):
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'))
returnNone
,因此您将None
传递给tuple
构造函数方法。事实上,这应该会引发一个错误。请在此处共享该错误。是的@Abdou您是对的。append方法返回None。我在单击(b):temp=list(vb.children)temp.append(wg.Text)时修改了代码def('3')vb.children=temp
现在可以了!@StanislavPopovych太好了!你应该回答你自己的问题=)