一、数值拖拽控件DragValue
- 支持鼠标拖拽调整数值(水平或垂直拖动)
- 允许直接点击后键盘输入精确数值
- 可配合加减按钮进行步进调整
- 自动处理数值范围约束(通过
range
参数设置最小/最大值) - 支持浮点数(f32/f64)和整数类型(i32/u32等)
- 可自定义显示格式(前缀/后缀文本)
- 游戏开发中的参数调节(如音量、透明度)
- 数据可视化工具的动态参数控制
- 需要快速调整数值的配置界面
- 通过
step
参数设置拖拽时的最小步长 smart_aim
选项可启用智能步进模式(拖动速度影响步长)- 支持自定义方向(水平/垂直滑动)
fn main() -> eframe::Result<()> {let options = eframe::NativeOptions::default();let mut num = 0;eframe::run_simple_native("控件学习", options, move |ctx, _frame| {egui::CentralPanel::default().show(ctx, |ui| {load_fonts(&ctx); ui.add(egui::DragValue::new(&mut num).range(0..=100) .prefix("请输入:") .suffix("个"), );});})
}
1、.range(0..=100)
:设置数值范围
.clamp_existing_to_range(true)
(无此行代码时默认为true)
- 设为
.clamp_existing_to_range(false)
时
- 在控件内只能设置范围内数据
- 其他地方或其他控件修改数据可以获得更大数据范围
2、前置描述符.prefix("请输入:")
3、后置描述符.suffix("个")
4、步长.speed(2)
二、进度条ProgressBar
ui.add(egui::ProgressBar::new(pro).fill(egui::Color32::GOLD) .show_percentage() .text("显示文本信息"),
);
三、滑动条Slider
ui.add(egui::Slider::new(&mut pro, 0.0..=1.0).drag_value_speed(0.05) .prefix("前置描述符").suffix("后置描述符").text("设置文本").vertical() .text_color(egui::Color32::RED),
);
四、数值拖拽控件、进度条、滑动条同时应用于同一变量的应用
fn main() -> eframe::Result<()> {let options = eframe::NativeOptions::default();let mut pro = 0.5; eframe::run_simple_native("控件学习", options, move |ctx, _frame| {egui::CentralPanel::default().show(ctx, |ui| {load_fonts(&ctx); ui.add(egui::DragValue::new(&mut pro).speed(0.01). range(0..=1) ); ui.add(egui::ProgressBar::new(pro).fill(egui::Color32::GOLD) .show_percentage() .text("显示文本信息"), );ui.add(egui::Slider::new(&mut pro, 0.0..=1.0) .drag_value_speed(0.05) .prefix("前置描述符").suffix("后置描述符").text("设置文本").vertical() .text_color(egui::Color32::RED), );});})
}