Skip to content

Reference

Accessible imports for the panel_precision_slider package.

PrecisionSlider(**params)

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