【问题标题】:use ipywidget interactive() with option manual=True使用带有选项 manual=True 的 ipywidget interactive()
【发布时间】:2019-02-04 15:53:28
【问题描述】:

我正在将带有交互式小部件的 jupyter 笔记本更新到更新的版本(ipywidgets 7.2.1)。

它曾经有interactive() 功能,通过单击按钮手动执行(功能__manual=True)。但是现在我无法重现相同的行为。

这是一个最小的例子:

from ipywidgets import interactive, interact_manual
import ipywidgets as widgets

def do_sth(x):
    #do sth with the argument passed
    print("done "+str(x))

nb = widgets.BoundedIntText(description='Number:')

#Interaction in accordion nested in a tab
tab = widgets.Tab()
tab.set_title(0, 'Page 1')

#old method 
#problem: it is not manual anymore
w = interactive(do_sth, x=nb, __manual=True)

#new solution 1
#problem: the widget appears also outside the tab/accordion
w1 = interact_manual(do_sth, x=nb)
w1.widget.children[1].description = 'do sth' #seems a bit of a hack

#new solution 2
w2 = interactive(do_sth, x=nb, manual=True) #does no pass the manual option
#if I set it manually with:
#w2.manual = True 
#It generates an error (AttributeError: 'interactive' object has no attribute 'manual_button')

accordion = widgets.Accordion(children=[w, w1.widget, w2])
accordion.set_title(0, 'old interaction 0')
accordion.set_title(1, 'new interaction 1')
accordion.set_title(2, 'new interaction 2')

tab.children = [accordion]

tab

是否可以使用解决方案 1 并防止小部件出现两次?否则,还有其他方法吗?

【问题讨论】:

  • 如果我理解,您想要一个在创建小部件时不会自动显示小部件的交互手册?
  • @ac24 没错!
  • 我查看了交互代码,但我无法轻松找到可以满足您需求的组合。您是否考虑过在 github 上发布问题? github.com/jupyter-widgets/ipywidgets

标签: jupyter-notebook ipywidgets


【解决方案1】:

似乎他们在添加重新标记按钮的功能时已将其移动到字典中。

试试

w2 = interactive(do_sth, {'manual' : True, 'manual_name' : 'Do Something'}, x=nb)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    相关资源
    最近更新 更多