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

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.xdnf.cn/news/18554.html

相关文章:

  • 大语言模型应用开发——利用OpenAI函数与LangChain结合从文本构建知识图谱搭建RAG应用全流程
  • 【KO】前端面试七
  • 20250823给荣品RD-RK3588开发板刷Rockchip原厂的Android14【EVB7的V10】时调通AP6275P的WIFI
  • react相关知识
  • GitLab CI:Auto DevOps 全解析,告别繁琐配置,拥抱自动化未来
  • 运行npm run命令报错“error:0308010C:digital envelope routines::unsupported”
  • 二叉树的经典算法与应用
  • 【网安干货】--操作系统基础(上)
  • USRP采集的WiFi信号绘制星座图为方形
  • 新手向:异步编程入门asyncio最佳实践
  • K8s 实战:Pod 版本更新回滚 + 生命周期管控
  • 嵌入式学习日记(33)TCP
  • 【UnityAS】Unity Android Studio 联合开发快速入门:环境配置、AAR 集成与双向调用教程
  • CMake link_directories()详细介绍与使用指南
  • STM32F1 GPIO介绍及应用
  • C/C++三方库移植到HarmonyOS平台详细教程(补充版so库和头文件形式)
  • 凌霄飞控开发日志兼新手教程——基础篇:认识基本的文件内容和相关函数作用(25电赛备赛版)
  • 【序列晋升】12 Spring Boot 约定优于配置
  • Spring发布订阅模式详解
  • Python 调用 sora_image模型 API 实现图片生成与垫图
  • 【论文】Zotero文献管理
  • 为什么应用会突然耗尽所有数据库连接
  • 轮廓检测技术不仅能精确计算图像中的轮廓数量,还能完整记录每个轮廓包含的所有像素点坐标
  • 【0基础3ds Max】捕捉工具详解
  • 宋红康 JVM 笔记 Day06|虚拟机栈
  • [激光原理与应用-318]:结构设计 - Solidworks - 草图
  • 损耗源:导线电阻与趋肤效应
  • 深度学习②【优化算法(重点!)、数据获取与模型训练全解析】
  • 线上日志排查问题
  • MCP 与 Function Calling 打开真实世界的两种“母体”方式