fn main() { let native_options = eframe::NativeOptions::default(); native_options.default_theme = eframe::Theme::Light; native_options.initial_window_size = Some(egui::Vec2 {x:400.0, y:200.0}); let _ = eframe::run_native("My egui App", native_options, Box::new(|cc| Box::new(MyEguiApp::new(cc)))); } impl Default for MyEguiApp { fn default() -> MyEguiApp { MyEguiApp { value:0, } } } #[derive(Default)] struct MyEguiApp { pub value:usize, } impl MyEguiApp { fn new(_cc: &eframe::CreationContext<'_>)-> Self { Self::default() } } impl eframe::App for MyEguiApp { fn update(&mut self, _ctx: &egui::Context, _frame: &mut eframe::Frame){ egui::CentralPanel::default().show(ctx, |ui|{ ui.heading("Hello World!"); ui.spacing(); let msg = format!("click {} times.", self.value); let label_txt = egui::RichText::new(msg) .size(32.0); let label = egui::Label::new(label_txt); ui.add(label); ui.separator(); let btn_txt = egui::RichText::new("Click!") .font(egui::FontId::proportional(24.0)); let btn = egui::Button::new(btn_txt); let resp = ui.add_sized(egui::Vec2{x:150.0, y:40.0}, btn); if resp.clicked() { self.value += 1; } }); } }
チェックボックス
impl eframe::App for MyEguiApp { fn update(&mut self, _ctx: &egui::Context, _frame: &mut eframe::Frame){ egui::CentralPanel::default().show(ctx, |ui|{ ui.heading("Hello World!"); ui.spacing(); let msg = format!("checked = {}.", self.value); let label_txt = egui::RichText::new(msg) .size(32.0); let label = egui::Label::new(label_txt); ui.add(label); ui.separator(); let check_txt = egui::RichText::new("checkbox") .size(24.0); let check = egui::Checkbox::new(&mut self.value, check_txt); let _resp = ui.add(check); }); } }
ラジオボタン、スライダー、ドラッグバリュー、選択ラベル、テキストエディット、パスワードなども