案例(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| {
//控件添加区
ui.menu_button("menu", |ui|{
ui.menu_button("File", |ui|{
ui.button("csv");
ui.button("txt");
});
ui.menu_button("About", |ui|{
ui.button("csv");
ui.button("txt");
});
});
});
})
}
显示:
案例(2):添加菜单栏简单选中事件
输入代码:
//菜单栏
use eframe::egui;
fn main() -> eframe::Result<()> {
let mut key = String::new();
let options = eframe::NativeOptions::default();
eframe::run_simple_native("My egui App", options, move |ctx, _frame| {
egui::CentralPanel::default().show(ctx, |ui| {
//控件添加区
ui.menu_button("menu", |ui|{
ui.menu_button("File", |ui|{
if ui.button("csv").clicked(){
key = "File_csv".into();
ui.close_menu();
}
if ui.button("txt").clicked(){
key = "File_txt".into();
ui.close_menu();
}
});
ui.menu_button("About", |ui|{
if ui.button("csv").clicked(){
key = "About_csv".into();
}
if ui.button("txt").clicked(){
key = "About_txt".into();
}
});
});
ui.label(&key);
});
})
}
显示:
案例(3):添加菜单栏添加子栏复选框
输入代码:
//菜单栏
use eframe::egui;
fn main() -> eframe::Result<()> {
let mut onoff = false;
let mut updown = false;
let mut high_low=false;
let options = eframe::NativeOptions::default();
eframe::run_simple_native("My egui App", options, move |ctx, _frame| {
egui::CentralPanel::default().show(ctx, |ui| {
//控件添加区
ui.menu_button("Menu", |ui|{
ui.menu_button("key", |ui|{
ui.checkbox(&mut onoff, "onoff");
ui.checkbox(&mut updown, "updown");
ui.checkbox(&mut high_low, "high_low");
});
});
});
})
}
显示:
案例(4):添加悬浮菜单
输入代码:
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| {
//控件添加区
ui.button("button").context_menu(|ui|{
ui.button("button").context_menu(|ui|{
ui.menu_button("223", |ui|{
ui.menu_button("223", |ui|{
ui.menu_button("223", |ui|{
});
});
});
});
});
ui.label("label").context_menu(|ui|{
ui.menu_button("223", |ui|{
ui.menu_button("223", |ui|{
ui.menu_button("223", |ui|{
});
});
});
});
});
})
}
显示:
案例(5):整合案例
输入代码:
use eframe::egui;
fn main() -> Result<(), eframe::Error> {
let options = eframe::NativeOptions {
viewport: egui::ViewportBuilder::default().with_inner_size([320.0, 240.0]),
..Default::default()
};
// Our application state:
let mut name = "Arthur".to_owned();
let mut age = 42;
eframe::run_simple_native("My egui App", options, move |ctx, _frame| {
egui::CentralPanel::default().show(ctx, |ui| {
ui.heading("My egui Application");
ui.horizontal(|ui| {
let name_label = ui.label("Your name: ");
ui.text_edit_singleline(&mut name)
.labelled_by(name_label.id);
});
ui.add(egui::Slider::new(&mut age, 0..=120).text("age"));
if ui.button("Increment").clicked() {
age += 1;
}
ui.label(format!("Hello '{name}', age {age}"));
});
})
}
显示: