An alternative; if yon't mind getting your hands dirt (i.e. side effects)
The return is a tuple (master, secondary, secondary limit) The last is just for debugging. An alternative is to not allow the "illegal" selection.
@interact
def myfunc(x=(0,10)):
#sage_interactive(myfunc1, y=(0,floor(x/2)))
pass
@interact
def myfunc1(y=(0,10)):
return y
def get_value():
gg=myfunc.widget.children[0].value
#print('gg= ',gg,' floor= ',floor(gg/2))
myfunc1.widget.children[0].max=floor(gg/2)
return myfunc.widget.children[0].value,myfunc1.widget.children[0].value, myfunc1.widget.children[0].max
I left some debugging junk in.
Tip: The secret is to use
f.?
f.children?
f.widget.children?
Often!
`
I understand that "sliders that depend on sliders" is a feature that is coming soon. You can see a sample at: http://interact.sagemath.org/node/15. But, it's not in the standard Sage distribution yet.