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

rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(八)按键事件

按键事件

  • ui.input:查询当前输入状态,只读,用于单个按键事件
  • ui.input_mut:可变访问,消费输入事件,防止事件重复处理,用于组合按键事件
  • key_pressed:用于单个按键
  • consume_key:用于组合按键
  • 注:以上笔记可能不完全正确 ,请自行尝试后判断用途
// 单个按键
if ui.input(|i|i.key_pressed(egui::Key::Enter)){println!("按下了:回车键");
}
// 两个按键组合
if ui.input_mut(|i|i.consume_key(egui::Modifiers::CTRL,egui::Key::D)){println!("按下了:Ctrl+D");
}
// 两个以上按键组合
if ui.input_mut(|i| {i.consume_key(egui::Modifiers::CTRL|egui::Modifiers::SHIFT, egui::Key::D)}) {println!("按下了:Ctrl+Shift+D");
}
// 单个按键
if ui.input_mut(|i|i.consume_key(egui::Modifiers::NONE,egui::Key::D)){println!("按下了:D");
}

按键事件应用

fn main() -> eframe::Result<()> {// 配置原生窗口参数let options = eframe::NativeOptions::default();let mut texts: Vec<String> = Vec::new();  // 文本标签列表显示的文本let mut edittext = String::new();         // 文本框的文本eframe::run_simple_native("添加删除", options, move |ctx, _frame| {egui::CentralPanel::default().show(ctx, |ui| {load_fonts(&ctx);    // 字体设置,函数定义:查看我博客:中文乱码相关章节let rp = ui.text_edit_singleline(&mut edittext); // 文本框rp.request_focus();                              // 文本框获取焦点// 回车事件if ui.input(|i| i.key_pressed(egui::Key::Enter)) {texts.push(edittext.clone()); // 将文本框内容添加到列表edittext.clear();             // 清空输入框rp.request_focus();           // 输入框获取焦点}// 按照列表创建标签for idx in &texts {ui.label(idx);}});})
}
http://www.dtcms.com/a/346679.html

相关文章:

  • vscode 中自己使用的 launch.json 设置
  • SpringBoot中实现接口查询数据动态脱敏
  • 倍福下的EC-A10020-P2-24电机调试说明
  • NVIDIA Nsight Systems性能分析工具
  • ISO 22341 及ISO 22341-2:2025安全与韧性——防护安全——通过环境设计预防犯罪(CPTED)
  • 武大智能与集成导航小组!i2Nav-Robot:用于的室内外机器人导航与建图的大规模多传感器融合数据集
  • 【字母异位分组】
  • 火车头使用Post方法采集Ajax页面教程
  • 量子计算驱动的Python医疗诊断编程前沿展望(中)
  • kubernetes-dashboard使用http不登录
  • 快速了解命令行界面(CLI)的行编辑模式
  • PyTorch框架之图像识别模型与训练策略
  • 一键部署开源 Coze Studio
  • 蓝牙链路层状态机精解:从待机到连接的状态跃迁与功耗控制
  • 全面解析了Java微服务架构的设计模式
  • 新疆地州市1米分辨率土地覆盖图
  • GOLANG 接口
  • 可自定义的BMS管理系统
  • 论文阅读:Inner Monologue: Embodied Reasoning through Planning with Language Models
  • SpringBoot 自动配置深度解析:从注解原理到自定义启动器​
  • 【JVM】JVM的内存结构是怎样的?
  • 调味品生产过程优化中Ethernet/IP转ProfiNet协议下施耐德 PLC 与欧姆龙 PLC 的关键通信协同案例
  • 字符串的大小写字母转换
  • linux中文本文件操作之grep命令
  • Linux-常用文件IO函数
  • Java:类及方法常见规约
  • UE5多人MOBA+GAS 53、测试专属服务器打包和连接,以及配置EOS
  • linux编程----网络通信(TCP)
  • 利用Prometheus监控服务器相关数据
  • SpringBoot自动配置原理解析