学习菜单未解决问题:点击菜单项后不关闭菜单。知道怎么解决朋友的欢迎留言,谢谢。
一、菜单menu_button
菜单
|- 文件
|- 打开文件
|- 创建文件
|- 退出
|- 帮助
|- 软件版本
fn main() -> eframe::Result<()> {
let options = eframe::NativeOptions::default();
eframe::run_simple_native("菜单", options, move |ctx, _frame| {
egui::CentralPanel::default().show(ctx, |ui| {
load_fonts(&ctx);
ui.menu_button("菜单", |ui| {
ui.menu_button("文件", |ui| {
ui.button("打开文件");
ui.button("创建文件");
});
ui.button("退出");
ui.menu_button("帮助", |ui| ui.button("软件版本"))
})
});
})
}
1、菜单点击事件
fn main() -> eframe::Result<()> {
let options = eframe::NativeOptions::default();
let mut key = String::new();
eframe::run_simple_native("菜单", options, move |ctx, _frame| {
egui::CentralPanel::default().show(ctx, |ui| {
load_fonts(&ctx);
ui.menu_button("菜单", |ui| {
ui.menu_button("文件", |ui| {
if ui.button("打开文件").clicked() {
key = "打开文件".into();
};
if ui.button("创建文件").clicked() {
key = "创建文件".into();
};
});
ui.button("退出");
ui.menu_button("帮助", |ui| ui.button("软件版本"))
});
ui.label(&key);
});
})
}
2、菜单中的复选框
fn main() -> eframe::Result<()> {
let options = eframe::NativeOptions::default();
let mut onoff = false;
let mut undwond = false;
let mut high_low = false;
eframe::run_simple_native("菜单", options, move |ctx, _frame| {
egui::CentralPanel::default().show(ctx, |ui| {
load_fonts(&ctx);
ui.menu_button("菜单", |ui| {
ui.menu_button("选择", |ui| {
ui.checkbox(&mut onoff, "onoff");
ui.checkbox(&mut undwond, "undwond");
ui.checkbox(&mut high_low, "high_low");
})
})
});
})
}
二、右键菜单context_menu
ui.button("鼠标右键点击").context_menu(|ui| {
ui.menu_button("按钮的右键菜单", |ui| {
ui.menu_button("子菜单", |ui| {});
});
});
ui.label("鼠标右键点击").context_menu(|ui| {
ui.menu_button("标签的右键菜单", |ui| {});
})