我非常想使用ipywidgets中的interact_manual功能,因为我正在执行一个耗时的功能。同时,我喜欢interactive_output功能,因为它允许我在源代码中生成我的小部件,并且只调用一个为我提供我需要显示的功能。
有什么好方法可以做到这一点吗?
谢谢!
答案 0 :(得分:2)
我认为您不能在此处使用便捷功能(interact_manual
,interactive_output
等)。您必须自己构建接口,这只会增加一点点复杂性。这是一个简单的例子。
from ipywidgets import widgets
slider = widgets.IntSlider(value=5, min=1, max=10, step=1)
#Create your button.
button = widgets.Button(description="Go")
#Output field.
output = widgets.Output()
#function to handle input.
def showOutput(btn):
output.clear_output()
return_value = slider.value
with output:
print(return_value)
button.on_click(showOutput)
ui = widgets.HBox([slider, button, output])
ui
答案 1 :(得分:1)
有一种无证的方法可以做到这一点。 interactive和interact_manual的实现几乎完全通过交互式类功能完成。手动功能只是传递给它的标志。所以你可以这样做:
from ipywidgets import interactive
from IPython.display import display
my_widget = interactive(f, arg1=foo, arg2=bar, __manual=True)
display(my_widget)