Here's the widget I came up with. The value is (low, high, unit), aka
(float, float, str) and renders like:
____ to ____ [unit]
It works fine, but I ended up duplicating the validation in .set_value()
and ._parse(), and also doing the subwidgets' validation. I wasn't sure
how to get around that since .set_value() wants to raise ValueError, and
with different messages. I could call .parse() in .set_value() but that
doesn't sound like a good idea.
The unit list would like to be two-level (HTML