【egui】[特殊字符] 窗口配置小抄:eframe::NativeOptions

📅 发布时间:2026/7/11 11:17:16 👁️ 浏览次数:
【egui】[特殊字符] 窗口配置小抄:eframe::NativeOptions
NativeOptions结构体就是窗口的设置面板——想调整窗口大小、图标、行为都在这。不需要背用到时回来翻就行。 一图看懂所有设置pubstructNativeOptions{// 长得啥样pubalways_on_top:bool,// 置顶显示pubmaximized:bool,// 启动时最大化pubdecorated:bool,// 显示标题栏和边框pubfullscreen:bool,// 全屏模式pubtransparent:bool,// 透明窗口pubmouse_passthrough:bool,// 鼠标穿透做悬浮窗用pubicon_data:OptionIconData,// 窗口图标默认是个e// 多大、在哪儿pubinitial_window_pos:OptionPos2,// 初始位置pubinitial_window_size:OptionVec2,// 初始大小pubmin_window_size:OptionVec2,// 最小尺寸pubmax_window_size:OptionVec2,// 最大尺寸pubresizable:bool,// 能调整大小吗pubcentered:bool,// 居中显示Wayland 不行// 用起来咋样pubdrag_and_drop_support:bool,// 支持拖放文件Windowspubactive:bool,// 启动时获得焦点pubvsync:bool,// 垂直同步防画面撕裂// ⚙️ 渲染相关一般不动pubmultisampling:u16,// 抗锯齿级别pubdepth_buffer:u8,// 深度缓冲3D才需要pubstencil_buffer:u8,// 模板缓冲3D才需要pubhardware_acceleration:HardwareAcceleration,// 硬件加速偏好pubrenderer:Renderer,// 用 glow 还是 wgpupubwgpu_options:WgpuConfiguration,// wgpu 详细设置// 主题相关pubfollow_system_theme:bool,// 跟随系统深色/浅色模式pubdefault_theme:Theme,// 默认主题Dark/Light// 生命周期pubrun_and_return:bool,// 窗口关了后程序继续运行pubevent_loop_builder:OptionEventLoopBuilderHook,// 事件循环钩子pubshader_version:OptionShaderVersion,// OpenGL 版本兼容// 数据存储pubapp_id:OptionString,// 应用ID决定配置文件放哪} 常用场景速查1. 最基础固定大小窗口letoptionseframe::NativeOptions{initial_window_size:Some(egui::vec2(800.0,600.0)),resizable:false,// 不让用户拖大拖小..Default::default()};2. 全屏应用比如游戏、演示letoptionseframe::NativeOptions{fullscreen:true,..Default::default()};3. 置顶工具比如悬浮计时器letoptionseframe::NativeOptions{always_on_top:true,mouse_passthrough:true,// 鼠标穿透点击下面的窗口decorated:false,// 无边框更清爽..Default::default()};4. 带图标的正式应用letoptionseframe::NativeOptions{icon_data:Some(load_my_icon()),// 从 PNG 加载app_id:Some(com.example.myapp.to_string()),// 数据存哪..Default::default()}; app_id你的数据存在哪平台存储路径Linux/home/用户名/.local/share/你的APP_IDmacOS/Users/用户名/Library/Application Support/你的APP_IDWindowsC:\Users\用户名\AppData\Roaming\你的APP_IDWayland 用户注意app_id还影响图标显示和窗口分组记得设 调试 vs 发布开发时用默认设置就行发布前再调这些letmutoptionseframe::NativeOptions::default();// 正式发布时ifcfg!(not(debug_assertions)){options.icon_dataSome(load_my_icon());options.app_idSome(com.myapp.prod.to_string());} 一句话原则用到的才配配了才知道——窗口设置就像装修开工前想清楚开工后改也来得及。遇到具体需求再回来翻这个文件五分钟搞定。 记住默认设置已经能跑起来这些是让你跑得更舒服的“选配”。