3

我正在使用 ipywidgets.widgets.Checkbox。有没有办法处理复选框事件?请帮忙。我是初学者。

编辑:如何创建复选框列表?

4

2 回答 2

9

没有任何直接事件,但您可以使用observe event。这可能会创建比您想要的更多的事件,因此您可能希望将它们过滤为一个。

from IPython.display import display
from ipywidgets import Checkbox

box = Checkbox(False, description='checker')
display(box)

def changed(b):
    print(b)

box.observe(changed)

要创建小部件的“列表”,您可以使用容器小部件。从链接:

from ipywidgets import Button, HBox, VBox

words = ['correct', 'horse', 'battery', 'staple']
items = [Button(description=w) for w in words]
left_box = VBox([items[0], items[1]])
right_box = VBox([items[2], items[3]])
HBox([left_box, right_box])
于 2017-06-21T05:36:54.130 回答
2

基于 Jacques 的回答:如果使用Jupyter Lab而不是标准的 Jupyter Notebook,您还必须创建一个输出小部件并告诉回调函数使用装饰器对其进行写入。所以给定的例子变成:

import ipywidgets as widgets

box = widgets.Checkbox(False, description='checker')
out = widgets.Output()

@out.capture()
def changed(b):
    print(b)

box.observe(changed)

display(box)
display(out)

这些步骤在此处记录,但很明显在使用 Jupyter Lab 时需要它们。

于 2019-06-18T18:14:06.723 回答