案例(1):检测按下按键或组合键
输入代码:
//简单的事件监听事件
use eframe::egui;
fn main() -> eframe::Result<()> {
let options = eframe::NativeOptions::default();
eframe::run_simple_native("My egui App", options, move |ctx, _frame| {
egui::CentralPanel::default().show(ctx, |ui| {
//这是控件提示
if ui.input(|i|i.key_pressed(egui::Key::Enter)){
println!("press enter");
}
if ui.input_mut(|i|i.consume_key(egui::Modifiers::CTRL, egui::Key::D)){
println!("press ctrl+D");
}
});
})
}
显示:
案例(2):输入框输入字符串后按enter键显示列表
输入代码:
//简单的事件监听事件
use eframe::egui;
fn main() -> eframe::Result<()> {
let options = eframe::NativeOptions::default();
let mut textedit = String::new();
let mut texts = Vec::new();
eframe::run_simple_native("My egui App", options, move |ctx, _frame| {
egui::CentralPanel::default().show(ctx, |ui| {
//这是控件提示
let rp=ui.text_edit_singleline(&mut textedit);
if ui.input(|i|i.key_pressed(egui::Key::Enter)){
texts.push(textedit.clone());
textedit.clear();
rp.request_focus();
}
for idx in &texts{
ui.label(idx);
}
});
})
}
显示:
案例(3):输入框中输入数值拖动后数值变大或小
输入代码:
//简单的事件监听事件
//dragvalue输入数值拖动变大变小
use eframe::egui;
fn main() -> eframe::Result<()> {
let options = eframe::NativeOptions::default();
let mut num = 0;
eframe::run_simple_native("My egui App", options, move |ctx, _frame| {
egui::CentralPanel::default().show(ctx, |ui| {
//这是控件区
ui.add(egui::DragValue::new(&mut num));
});
})
}
显示:
案例(4):前置与后置描述拖动数值变化DragValue
输入代码:
//简单的事件监听事件
//dragvalue输入数值拖动变大变小
use eframe::egui;
fn main() -> eframe::Result<()> {
let options = eframe::NativeOptions::default();
let mut num = 0;
eframe::run_simple_native("My egui App", options, move |ctx, _frame| {
egui::CentralPanel::default().show(ctx, |ui| {
//前置描述
ui.add(egui::DragValue::new(&mut num).prefix("selcet:"));
//后置描述
ui.add(egui::DragValue::new(&mut num).suffix("*"));
});
})
}
显示:
案例(5):设置拖动数值变化DragValue的数范围
输入代码:
//简单的事件监听事件
//dragvalue输入数值拖动变大变小
use eframe::egui;
fn main() -> eframe::Result<()> {
let options = eframe::NativeOptions::default();
let mut num = 0;
eframe::run_simple_native("My egui App", options, move |ctx, _frame| {
egui::CentralPanel::default().show(ctx, |ui| {
//限定范围
ui.add(egui::DragValue::new(&mut num).clamp_range(0..=100));
});
})
}
显示: