egui
egui copied to clipboard
Fix: Positioning issues with Slider and other Button.
Fix Issue: Positioning issues with Slider and other Button.
Fix Issue: When ui.slider() is inside ui.horizontal(), the DragValue button position moves down slightly.
Improvement: .text_style_height(&ui.style().drag_value_text_style)
Improvement: button_padding applied
- Closes #4854
If there are multiple SliderOrientation::Verticals, things can get a little tricky to handle.
Before : https://github.com/user-attachments/assets/3f8120aa-cf92-4383-a038-c3af4b768ce0
After : https://github.com/user-attachments/assets/f0f037ff-5fd7-42bf-b9b6-277951232edc
Test Example :
use eframe::egui::*;
fn main() -> eframe::Result {
let options = eframe::NativeOptions {
viewport: egui::ViewportBuilder::default().with_inner_size([320.0, 240.0]),
..Default::default()
};
eframe::run_native(
"My egui App",
options,
Box::new(|_cc| Ok(Box::<MyApp>::default())),
)
}
#[derive(Default)]
struct MyApp {
temp_value: usize,
_text: String,
}
impl eframe::App for MyApp {
fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
egui::CentralPanel::default().show(ctx, |ui| {
ui.separator();
ui.horizontal(|ui| {
ui.add(Slider::new(&mut self.temp_value, 0..=255));
ui.add(DragValue::new(&mut self.temp_value));
if ui.button("⟲").clicked() {
self.temp_value = 255;
}
ui.add(Slider::new(&mut self.temp_value, 0..=255));
ui.add(DragValue::new(&mut self.temp_value));
if ui.button("⟲").clicked() {
self.temp_value = 255;
}
});
ui.separator();
ui.horizontal(|ui| {
ui.set_max_width(100.0);
ui.vertical_centered(|ui| {
ui.add(Slider::new(&mut self.temp_value, 0..=255).vertical());
ui.add(DragValue::new(&mut self.temp_value));
if ui.button("⟲").clicked() {
self.temp_value = 255;
}
});
ui.vertical_centered(|ui| {
ui.add(Slider::new(&mut self.temp_value, 0..=255).vertical());
ui.add(DragValue::new(&mut self.temp_value));
if ui.button("⟲").clicked() {
self.temp_value = 255;
}
});
});
ui.separator();
ctx.settings_ui(ui);
});
}
}