取消选中一个选中的其他复选框
Uncheck other checkbox on one checked
这段代码是我写的(实际上是用Jupyter-Notebook):
import random
from ipywidgets import widgets
for ind in range(0,10):
print('Some text'+str(ind))
cb_inner = []
a = random.randint(0,3)
for el in range(0,3):
cb_value = True if el == a else False
A = widgets.Checkbox(value=cb_value, description='cb'+str(el))
cb_inner.append(A)
for_box_list = cb_inner
box = widgets.HBox(for_box_list)
display(box)
print('---'*41)
现在我有了每个文本字符串和一行复选框。一次只有一个复选框处于活动状态。如果我选中另一个复选框,它们都会被选中。我想做什么:如果我选中另一个复选框,第一个自动禁用(对于每条短信的复选框组)。
我想我需要为此创建事件。我找到了这个:
但我不明白如何为我所有的盒子实现它?
我想了很多关于复选框列表并在循环中为它们创建事件,但最终找到了简单的方法:
使用单选按钮。为了处理一行中所有复选框都被关闭的情况,我只是在 RadioButton 参数中添加了一个选项:
from ipywidgets import widgets
buttons_list = []
for ind in range(0,10):
print('My message',ind)
rb = widgets.RadioButtons(options=['cb1', 'cb2', 'noone checked'],
value='cb1')
display(rb)
print('---'*41)
buttons_list.append(rb)
这段代码是我写的(实际上是用Jupyter-Notebook):
import random
from ipywidgets import widgets
for ind in range(0,10):
print('Some text'+str(ind))
cb_inner = []
a = random.randint(0,3)
for el in range(0,3):
cb_value = True if el == a else False
A = widgets.Checkbox(value=cb_value, description='cb'+str(el))
cb_inner.append(A)
for_box_list = cb_inner
box = widgets.HBox(for_box_list)
display(box)
print('---'*41)
现在我有了每个文本字符串和一行复选框。一次只有一个复选框处于活动状态。如果我选中另一个复选框,它们都会被选中。我想做什么:如果我选中另一个复选框,第一个自动禁用(对于每条短信的复选框组)。
我想我需要为此创建事件。我找到了这个:
但我不明白如何为我所有的盒子实现它?
我想了很多关于复选框列表并在循环中为它们创建事件,但最终找到了简单的方法: 使用单选按钮。为了处理一行中所有复选框都被关闭的情况,我只是在 RadioButton 参数中添加了一个选项:
from ipywidgets import widgets
buttons_list = []
for ind in range(0,10):
print('My message',ind)
rb = widgets.RadioButtons(options=['cb1', 'cb2', 'noone checked'],
value='cb1')
display(rb)
print('---'*41)
buttons_list.append(rb)