Skip to navigation
Rust example with native dialog file picker, menu and textedit
08.02.23
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] // hide console window on Windows in release use eframe::egui; fn main() { let options = eframe::NativeOptions { drag_and_drop_support: true, initial_window_size: Some(egui::vec2(320.0, 240.0)), ..Default::default() }; eframe::run_native( "CT", options, Box::new(|_cc| Box::new(Ct::default())), ); } #[derive(Default)] struct Ct { text: String, picked_path: String, } // https://www.egui.rs/#demo // https://docs.rs/egui/latest/egui/ // https://docs.rs/egui/latest/egui/widgets/text_edit/struct.TextEdit.html impl eframe::App for Ct { fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) { egui::CentralPanel::default().show(ctx, |ui| { ui.add_space(20.0); egui::ScrollArea::vertical().show(ui, |ui| { ui.add_sized(ui.available_size(), egui::TextEdit::multiline(&mut self.text)); }); }); egui::TopBottomPanel::top("top_panel").show(ctx, |ui| { egui::menu::bar(ui, |ui| { ui.menu_button("File", |ui| { if ui.button("Open").clicked() { if let Some(path) = rfd::FileDialog::new().pick_file() { self.picked_path = path.display().to_string(); println!("{:?}",self.picked_path); self.text = self.picked_path.clone(); } } if ui.button("Save").clicked() { //functionality } if ui.button("Quit").clicked() { _frame.close(); } }); ui.menu_button("Edit", |ui| { if ui.button("Cut").clicked() { //functionality } if ui.button("Copy").clicked() { //functionality } if ui.button("Paste").clicked() { //funtionality } if ui.button("Encrypt").clicked() { println!("encrypt...."); } }) }); }); } }
https://github.com/emilk/egui/blob/master/examples/file_dialog/src/main.rs
Reply
Anonymous
Information Epoch 1742359004
Save trees.
Home
Notebook
Contact us