学习菜单未解决问题:点击菜单项后不关闭菜单。知道怎么解决朋友的欢迎留言,谢谢。
bash
复制代码
菜单
|- 文件
|- 打开文件
|- 创建文件
|- 退出
|- 帮助
|- 软件版本
rust
复制代码
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、菜单点击事件
rust
复制代码
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、菜单中的复选框
rust
复制代码
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"); // 复选框
})
})
});
})
}
rust
复制代码
ui.button("鼠标右键点击").context_menu(|ui| {
ui.menu_button("按钮的右键菜单", |ui| {
ui.menu_button("子菜单", |ui| {});
});
});
ui.label("鼠标右键点击").context_menu(|ui| {
ui.menu_button("标签的右键菜单", |ui| {});
})