Bases: PyComponent
PrecisionSlider is a custom Panel component that provides a synchronized
slider and input field for selecting numerical values with adjustable precision.
Users can toggle between a slider and a direct input field, as well as show or hide
the step size adjustment.
Initializes the PrecisionSlider component with the given parameters.
Args:
**params: Additional parameters to override the default settings.
Source code in src/panel_precision_slider/main.py
| def __init__(self, **params: dict[str, Any]) -> None:
"""
Initializes the PrecisionSlider component with the given parameters.
Args:
**params: Additional parameters to override the default settings.
"""
super().__init__(**params)
self._swap_icon = pn.widgets.ToggleIcon.from_param(
self.param.swap,
icon="numbers",
active_icon="adjustments-horizontal",
margin=0,
)
self._show_icon = pn.widgets.ToggleIcon.from_param(
self.param.show_step,
icon="eye",
active_icon="eye-off",
margin=0,
)
self._placeholder = pn.pane.Placeholder()
self._value_slider = pn.widgets.FloatSlider.from_param(
self.param.value,
start=self.param.min,
end=self.param.max,
step=self.param.step,
)
self._step_slider = pn.widgets.FloatSlider.from_param(
self.param.step,
start=1e-6,
step=0.1,
visible=self.param.show_step,
)
self._value_input = pn.widgets.FloatInput(
start=self.param.min,
end=self.param.max,
step=self.param.step,
width=params.get("width"),
min_width=params.get("min_width"),
max_width=params.get("max_width"),
)
self._value_slider.link(self._value_input, value="value", bidirectional=True)
self.param.trigger("swap")
|
max = param.Number(default=10, doc='The maximum allowable value.')
class-attribute
instance-attribute
min = param.Number(default=0, doc='The minimum allowable value.')
class-attribute
instance-attribute
show_step = param.Boolean(default=True, label='', doc='Display the step size adjustment slider.')
class-attribute
instance-attribute
step = param.Number(default=0.1, bounds=(1e-06, None), doc='The step size for the slider/input field.')
class-attribute
instance-attribute
swap = param.Boolean(default=False, label='', doc='Flag to toggle between the slider and input field.')
class-attribute
instance-attribute
value = param.Number(default=5, doc='The current value of the slider/input field.')
class-attribute
instance-attribute