当我使用Firefox并点击日期选择器旁边的x时,我得到以下错误消息:
这在Chrome上是不会发生的,而且它应该也可以在Firefox中工作,通过阅读网页官方网页,你能帮助吗?
代码如下:
from ipywidgets import DatePicker, FloatText,HBox, interactive_output, Text
import datetime
from dateutil.relativedelta import relativedelta
ddecW = DatePicker(value=datetime.date.today() + relativedelta(months=2, day=1))
dobW = DatePicker(value=datetime.date.today() + relativedelta(years=-18))
etaW = FloatText(description='Età')
ui = HBox([ddecW, dobW, etaW])
def f(end, start, age):
etaW.value = round((end - start).days/365.25, 1)
out = interactive_output(f, {'end': ddecW, 'start': dobW, 'age': etaW})
display(ui, out)
发布于 2021-04-06 09:41:29
在这种情况下,您的输出小部件应该显示什么? 0?
另外,因为您将etaW
小部件包含在interactive_output
调用中,所以当您设置eta.value
时,这将再次触发f
,从而导致递归循环。更好的方法是使用下面的方法,或者我会避免使用interactive_output
,而只使用observe
函数。
from ipywidgets import DatePicker, FloatText,HBox, interactive_output, Text
import datetime
from dateutil.relativedelta import relativedelta
import numpy as np
ddecW = DatePicker(value=datetime.date.today() + relativedelta(months=2, day=1))
dobW = DatePicker(value=datetime.date.today() + relativedelta(years=-18))
etaW = FloatText(description='Età')
ui = HBox([ddecW, dobW])
def f(end, start):
val = round((end - start).days/365.25, 1)
print(f'Delta is {val}')
out = interactive_output(f, {'end': ddecW, 'start': dobW,})
display(ui, out)
https://stackoverflow.com/questions/66915891
复制相似问题