Python - Ipywidgets - SelectMultiple - 创建一个 Select ALL 选项

Python - Ipywidgets - SelectMultiple - Create a Select ALL option

我目前正在使用 selectipywidgets 中的多个小部件,我正在寻找更好的解决方案。我有 200 多个国家/地区,用户可以 select 来自这些国家,有时他们想要 SELECT 全部。使用此小部件,他们需要单击每个国家/地区,这非常耗时。有没有人有我可以尝试的其他建议或选项。任何帮助将不胜感激。

widgets.SelectMultiple(
options=['Afghanistan', 
          'Aland Islands',
          'Albania'
          'Algeria',
        #Code continues for 249 countries
         ],
value=['Afghanistan'],
#rows=10,
description='Countries',
disabled=False
 )

谢谢

您可以在 Mac 到 select 中以通常的方式使用 CMD+A,假设 CTRL+A 也适用于 Windows。

但是如果您需要一个小部件,在它旁边的按钮执行相同的操作怎么样?

import ipywidgets as widgets
sel = widgets.SelectMultiple(
options=['Afghanistan', 
          'Aland Islands',
          'Albania',
          'Algeria',
        #Code continues for 249 countries
         ],
value=['Afghanistan'],
#rows=10,
description='Countries',
disabled=False
 )


but = widgets.Button(description = 'Select all')

def select_all(*args):
    sel.value = sel.options

but.on_click(select_all)

display(sel)
display(but)

我通过在列表顶部添加一个 'ALL' 选项来处理这个问题:

import ipywidgets as widgets
sel = widgets.SelectMultiple(
options=['ALL',
          'Afghanistan', 
          'Aland Islands',
          'Albania',
          'Algeria',
        #Code continues for 249 countries
         ],
value=['ALL'],
#rows=10,
description='Countries',
disabled=False
 )

默认情况下,如果他们想要,他们将获得所有物品,或者他们可以像往常一样选择较少数量的物品。

问候