首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清除装潢器ipywidget

清除装潢器ipywidget
EN

Stack Overflow用户
提问于 2022-12-02 02:19:20
回答 1查看 12关注 0票数 0

我有一个函数,它用几个ipywidget作为输入绘制一个图:

代码语言:javascript
复制
from IPython.display import clear_output
def on_clicker(button):
   clear_output()
   @widgets.interact(dropdown=widgets.Dropdown(...),
                  datepicker=widgets.DatePicker(...)
   def grapher(dropdown, datepicker):
      global recalculate
      ... some graphing stuff
      display(recalculate)
      recalculate.on_click(on_clicker)

这样做的想法是,单击“重新计算”再次调用该图形并清除过去的输出。但是,当我尝试这样做时,装饰符中的小部件仍然被反复使用重新计算:

堆叠小部件

是否有任何方法清除这些小部件,因为clear_output()似乎不起作用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-12-02 02:27:41

您可以使用clear_output()函数清除木星笔记本中当前单元格的输出。但是,这将不能清除您在代码中定义的小部件。为了清除这些小部件,每次调用on_clicker()函数时都需要重新初始化它们。

这样做的一种方法是移动在on_clicker()函数中初始化小部件的代码,以便每次调用该函数时都重新初始化这些小部件。

下面是如何修改代码以实现此目的的示例:

代码语言:javascript
复制
from IPython.display import clear_output

def on_clicker(button):
   clear_output()
   # Define the widgets inside the on_clicker function
   dropdown = widgets.Dropdown(...)
   datepicker = widgets.DatePicker(...)
   @widgets.interact(dropdown=dropdown, datepicker=datepicker)
   def grapher(dropdown, datepicker):
      global recalculate
      ... some graphing stuff
      display(recalculate)
      recalculate.on_click(on_clicker)

这样,当调用on_clicker()函数时,它将清除输出并重新初始化小部件,这将解决您的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74650205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档