当前位置: 首页 > news >正文

rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(九)数值拖拽控件、进度条、滑动条

一、数值拖拽控件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)          // 数值范围// .clamp_existing_to_range(true).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),  // 文本颜色);});})
}
http://www.dtcms.com/a/346998.html

相关文章:

  • JupyterLab在线调试实验室
  • 【C语言16天强化训练】从基础入门到进阶:Day 7
  • 【Github】SourceTree远端链接Github
  • 173-基于Flask的微博舆情数据分析系统
  • Dism++备份系统时报错[句柄无效]的解决方法
  • 大模型训练方法全面解析:SFT、RFT、TRPO、DPO、PPO、GRPO、RLH、RLHF技术深度剖析
  • chromadb使用hugging face模型时利用镜像网站下载注意事项
  • SQL Server Service Broker超全介绍
  • linux内核 - slab 分配器
  • 微信小程序界面常用操作
  • 【200页PPT】IT战略规划架构设计报告(附下载方式)
  • SpringAi和LangChain4j揭开面纱
  • 高速CANFD收发器ASM1042在割草机器人轮毂电机通信系统中的适配性研究
  • LeakyReLU和ReLU的区别
  • 【51单片机学习】直流电机驱动(PWM)、AD/DA、红外遥控(外部中断)
  • 脚本:git push直到成功(windows powershell命令)(Github连不上、Github断开)
  • UE5.3 中键盘按键和操作绑定
  • 37_基于深度学习的铝材缺陷检测识别系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)
  • openharmony之一多开发:产品形态配置讲解
  • 解码LLM量化:深入剖析最常见8位与4位核心算法
  • 【机器学习深度学习】多模态典型任务与应用全景
  • 【Canvas与徽章】中国制造金色玻璃光徽章
  • 计算机视觉工程师业务场景题:智能推荐视频封面
  • 链表-23.合并K个升序链表-力扣(LeetCode)
  • 【机器学习深度学习】模态与多模态的概念
  • ANSI终端色彩控制知识散播(II):封装的层次(Python)——不同的逻辑“一样”的预期
  • 广东省省考备考(第八十四天8.23)——言语、常识(强化训练)
  • d435i深度相机使用
  • 复杂工况漏检率↓79%!陌讯多模态融合算法在智慧能源设备检测的落地实践
  • 大模型如何一招打通,零标注也能SOTA