【发布时间】:2019-08-10 05:00:19
【问题描述】:
我遇到了与 TheInterestedOne 提出的 here 相同的问题。
我需要为用户创建两个按钮,并建议用户点击循环中的两个按钮之一;以便循环的下一次迭代仅在用户选择之后发生。
我阅读了this source,但我无法让它适用于按钮。我不明白,在使用按钮的情况下,小部件属性如何变化。
from functools import wraps
def yield_for_change(widget, attribute):
def f(iterator):
@wraps(iterator)
def inner():
i = iterator()
def next_i(change):
try:
i.send(change.new)
except StopIteration as e:
widget.unobserve(next_i, attribute)
widget.observe(next_i, attribute) //**button.on_click(on_button_clicked)
may be?**
# start the generator
next(i)
return inner
return f
from ipywidgets import Button
button=Button()
def on_button_clicked():
print("Button clicked.")
@yield_for_change(button, 'value')
def f():
for i in range(10):
print('did work %s'%i)
x = yield
button.on_click(on_button_clicked)
【问题讨论】:
-
嗨,欢迎来到 stackoverflow。如果您展示您尝试过的代码的具体示例以及失败的地方,您将更有可能从某人那里得到答案。见minimal reproducible example。
标签: python button widget jupyter-notebook ipywidgets