每次运行时清除小部件以前的输出
Clear previous output of widget every time it runs
我想在重新运行小部件时清除之前的输出。
例如
from IPython.display import display, clear_output
import ipywidgets as widgets
from datetime import datetime, timedelta
button = widgets.Button(description='RUN',button_style='info')
def on_button_clicked(b):
# DO SOMETHING #
out = widgets.Output()
out.clear_output(wait=True)
out.append_stdout(f'Ran at {datetime.now()}')
display(out)
button.on_click(on_button_clicked)
widgets.VBox([button])
每次我点击 RUN
按钮它 "appends" 打印语句
我也试过这个:
button = widgets.Button(description='RUN',button_style='info')
def on_button_clicked(b):
# DO SOMETHING #
out = widgets.Output()
out.clear_output(wait=True)
with out:
print(f'Ran at {datetime.now()}')
display(out)
button.on_click(on_button_clicked)
widgets.VBox([button])
这个有效
from IPython.display import display, clear_output
import ipywidgets as widgets
from datetime import datetime, timedelta
button = widgets.Button(description='RUN',button_style='info')
out = widgets.Output()
@out.capture(clear_output=True)
def on_button_clicked(b):
# DO SOMETHING #
print ( f'Ran at {datetime.now()}')
button.on_click(on_button_clicked)
widgets.VBox([button])
看起来你是 运行 ipython 3.8...那是 5 岁。我强烈建议升级到更高版本,但完全理解这并不总是可能的,具体取决于时间和资源。
这是 ipython 3.x 显示小部件的文档:
https://ipython.org/ipython-doc/3/api/generated/IPython.display.html#functions
试试这个:
from IPython.display import clear_output
import ipywidgets as widgets
from datetime import datetime
button = widgets.Button(description='RUN',button_style='info')
def on_button_clicked(b):
# DO SOMETHING #
print(f'Ran at {datetime.now()}')
# This will clear the cell output the NEXT time the button is pressed
clear_output(wait=True)
button.on_click(on_button_clicked)
widgets.VBox([button])
在使用print()
时笔记本中出现了一些"shaking"的报告。如果您注意到这一点,请尝试使用 print('message', flush=True)
。
我想在重新运行小部件时清除之前的输出。
例如
from IPython.display import display, clear_output
import ipywidgets as widgets
from datetime import datetime, timedelta
button = widgets.Button(description='RUN',button_style='info')
def on_button_clicked(b):
# DO SOMETHING #
out = widgets.Output()
out.clear_output(wait=True)
out.append_stdout(f'Ran at {datetime.now()}')
display(out)
button.on_click(on_button_clicked)
widgets.VBox([button])
每次我点击 RUN
按钮它 "appends" 打印语句
我也试过这个:
button = widgets.Button(description='RUN',button_style='info')
def on_button_clicked(b):
# DO SOMETHING #
out = widgets.Output()
out.clear_output(wait=True)
with out:
print(f'Ran at {datetime.now()}')
display(out)
button.on_click(on_button_clicked)
widgets.VBox([button])
这个有效
from IPython.display import display, clear_output
import ipywidgets as widgets
from datetime import datetime, timedelta
button = widgets.Button(description='RUN',button_style='info')
out = widgets.Output()
@out.capture(clear_output=True)
def on_button_clicked(b):
# DO SOMETHING #
print ( f'Ran at {datetime.now()}')
button.on_click(on_button_clicked)
widgets.VBox([button])
看起来你是 运行 ipython 3.8...那是 5 岁。我强烈建议升级到更高版本,但完全理解这并不总是可能的,具体取决于时间和资源。
这是 ipython 3.x 显示小部件的文档:
https://ipython.org/ipython-doc/3/api/generated/IPython.display.html#functions
试试这个:
from IPython.display import clear_output
import ipywidgets as widgets
from datetime import datetime
button = widgets.Button(description='RUN',button_style='info')
def on_button_clicked(b):
# DO SOMETHING #
print(f'Ran at {datetime.now()}')
# This will clear the cell output the NEXT time the button is pressed
clear_output(wait=True)
button.on_click(on_button_clicked)
widgets.VBox([button])
在使用print()
时笔记本中出现了一些"shaking"的报告。如果您注意到这一点,请尝试使用 print('message', flush=True)
。