我正在尝试更新标签小部件的子级。所以,我首先创建一个简单的选项卡示例:
from ipywidgets import widgets
from IPython.display import display
lst = ['P0', 'P1', 'P2', 'P3', 'P4']
childs = [widgets.Text(description=name) for name in lst]
tab = widgets.Tab(children=childs)
[tab.set_title(num, name) for num, name in enumerate(lst)]
display(tab)
然后,我尝试删除' P2'标签:
child_to_remove = 2
lst.pop(child_to_remove)
tab.children = [i for k, i in enumerate(tab.children) if k != child_to_remove]
[tab.set_title(num, name) for num, name in enumerate(lst)]
如果我查看已经显示的标签,新标题是:' P0',' P1',' P4'和' Page 6'如果我再次运行display(tab)
,标签就可以了。但如果删除最后一个标签child_to_remove = 4
,则没有问题。
如何在不使用display(tab)
的情况下更新第一个创建的标签,并为每个标签设置正确的标题?