rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十七)设置主题

设置主题set_visuals

  • ctx.set_visuals(Visuals::dark()); 设置暗色主题
  • ctx.set_visuals(Visuals::light()); 设置亮色主题
rust 复制代码
fn main() -> eframe::Result<()> {
    // 配置原生窗口参数
    let options = eframe::NativeOptions::default();

    eframe::run_simple_native("主题", options, move |ctx, _frame| {
        
        ctx.set_visuals(Visuals::dark()); // 设置暗色主题
        // ctx.set_visuals(Visuals::light()); // 设置亮色主题

        egui::CentralPanel::default().show(ctx, |ui| {
            load_fonts(&ctx);
            ui.heading("aaadge");
            ui.label("geggge");
        });
    })
}

按钮切换主题

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);
            
            if ui.button("切换主题").clicked() {
                // 判断当前是否为暗色
                let visuals = if ctx.style().visuals.dark_mode {
                    Visuals::light()   // 亮色主题
                } else {
                    Visuals::dark()    // 暗色朱提
                };
                ctx.set_visuals(visuals);  // 设置主题
            }
            
        });
    })
}