pub struct Slider<'a> { /* private fields */ }
Expand description
Control a number with a slider.
The slider range defines the values you get when pulling the slider to the far edges.
By default, the slider can still show values outside this range,
and still allows users to enter values outside the range by clicking the slider value and editing it.
If you want to clamp incoming and outgoing values, use Slider::clamp_to_range
.
The range can include any numbers, and go from low-to-high or from high-to-low.
The slider consists of three parts: a slider, a value display, and an optional text.
The user can click the value display to edit its value. It can be turned off with .show_value(false)
.
ui.add(egui::Slider::new(&mut my_f32, 0.0..=100.0).text("My value"));
The default Slider
size is set by crate::style::Spacing::slider_width
.
Implementations
sourceimpl<'a> Slider<'a>
impl<'a> Slider<'a>
sourcepub fn new<Num>(value: &'a mut Num, range: RangeInclusive<Num>) -> Slider<'a>where
Num: Numeric,
pub fn new<Num>(value: &'a mut Num, range: RangeInclusive<Num>) -> Slider<'a>where
Num: Numeric,
Creates a new horizontal slider.
pub fn from_get_set(
range: RangeInclusive<f64>,
get_set_value: impl FnMut(Option<f64>) -> f64 + 'a
) -> Slider<'a>
sourcepub fn show_value(self, show_value: bool) -> Slider<'a>
pub fn show_value(self, show_value: bool) -> Slider<'a>
Control whether or not the slider shows the current value.
Default: true
.
sourcepub fn prefix(self, prefix: impl ToString) -> Slider<'a>
pub fn prefix(self, prefix: impl ToString) -> Slider<'a>
Show a prefix before the number, e.g. “x: “
sourcepub fn suffix(self, suffix: impl ToString) -> Slider<'a>
pub fn suffix(self, suffix: impl ToString) -> Slider<'a>
Add a suffix to the number, this can be e.g. a unit (“°” or “ m“)
sourcepub fn text(self, text: impl ToString) -> Slider<'a>
pub fn text(self, text: impl ToString) -> Slider<'a>
Show a text next to the slider (e.g. explaining what the slider controls).
pub fn text_color(self, text_color: Color32) -> Slider<'a>
sourcepub fn orientation(self, orientation: SliderOrientation) -> Slider<'a>
pub fn orientation(self, orientation: SliderOrientation) -> Slider<'a>
Vertical or horizontal slider? The default is horizontal.
sourcepub fn logarithmic(self, logarithmic: bool) -> Slider<'a>
pub fn logarithmic(self, logarithmic: bool) -> Slider<'a>
Make this a logarithmic slider. This is great for when the slider spans a huge range, e.g. from one to a million. The default is OFF.
sourcepub fn smallest_positive(self, smallest_positive: f64) -> Slider<'a>
pub fn smallest_positive(self, smallest_positive: f64) -> Slider<'a>
For logarithmic sliders that includes zero:
what is the smallest positive value you want to be able to select?
The default is 1
for integer sliders and 1e-6
for real sliders.
sourcepub fn largest_finite(self, largest_finite: f64) -> Slider<'a>
pub fn largest_finite(self, largest_finite: f64) -> Slider<'a>
For logarithmic sliders, the largest positive value we are interested in
before the slider switches to INFINITY
, if that is the higher end.
Default: INFINITY.
sourcepub fn clamp_to_range(self, clamp_to_range: bool) -> Slider<'a>
pub fn clamp_to_range(self, clamp_to_range: bool) -> Slider<'a>
If set to true
, all incoming and outgoing values will be clamped to the slider range.
Default: true
.
sourcepub fn smart_aim(self, smart_aim: bool) -> Slider<'a>
pub fn smart_aim(self, smart_aim: bool) -> Slider<'a>
Turn smart aim on/off. Default is ON. There is almost no point in turning this off.
sourcepub fn step_by(self, step: f64) -> Slider<'a>
pub fn step_by(self, step: f64) -> Slider<'a>
Sets the minimal change of the value.
Value 0.0
effectively disables the feature. If the new value is out of range
and clamp_to_range
is enabled, you would not have the ability to change the value.
Default: 0.0
(disabled).
sourcepub fn min_decimals(self, min_decimals: usize) -> Slider<'a>
pub fn min_decimals(self, min_decimals: usize) -> Slider<'a>
Set a minimum number of decimals to display. Normally you don’t need to pick a precision, as the slider will intelligently pick a precision for you. Regardless of precision the slider will use “smart aim” to help the user select nice, round values.
sourcepub fn max_decimals(self, max_decimals: usize) -> Slider<'a>
pub fn max_decimals(self, max_decimals: usize) -> Slider<'a>
Set a maximum number of decimals to display. Values will also be rounded to this number of decimals. Normally you don’t need to pick a precision, as the slider will intelligently pick a precision for you. Regardless of precision the slider will use “smart aim” to help the user select nice, round values.
sourcepub fn fixed_decimals(self, num_decimals: usize) -> Slider<'a>
pub fn fixed_decimals(self, num_decimals: usize) -> Slider<'a>
Set an exact number of decimals to display. Values will also be rounded to this number of decimals. Normally you don’t need to pick a precision, as the slider will intelligently pick a precision for you. Regardless of precision the slider will use “smart aim” to help the user select nice, round values.
sourcepub fn custom_formatter(
self,
formatter: impl Fn(f64, RangeInclusive<usize>) -> String + 'a
) -> Slider<'a>
pub fn custom_formatter(
self,
formatter: impl Fn(f64, RangeInclusive<usize>) -> String + 'a
) -> Slider<'a>
Set custom formatter defining how numbers are converted into text.
A custom formatter takes a f64
for the numeric value and a RangeInclusive<usize>
representing
the decimal range i.e. minimum and maximum number of decimal places shown.
ui.add(egui::Slider::new(&mut my_i64, 0..=100).custom_formatter(|n, _| format!("{:X}", n as i64)));