当前位置: 首页 > news >正文

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

NativeOptions结构体就是窗口的设置面板——想调整窗口大小、图标、行为?都在这。不需要背,用到时回来翻就行

📋 一图看懂所有设置

pubstructNativeOptions{// 🎨 长得啥样pubalways_on_top:bool,// 置顶显示?pubmaximized:bool,// 启动时最大化?pubdecorated:bool,// 显示标题栏和边框?pubfullscreen:bool,// 全屏模式?pubtransparent:bool,// 透明窗口?pubmouse_passthrough:bool,// 鼠标穿透(做悬浮窗用)?pubicon_data:Option<IconData>,// 窗口图标(默认是个"e")// 📏 多大、在哪儿pubinitial_window_pos:Option<Pos2>,// 初始位置pubinitial_window_size:Option<Vec2>,// 初始大小pubmin_window_size:Option<Vec2>,// 最小尺寸pubmax_window_size:Option<Vec2>,// 最大尺寸pubresizable:bool,// 能调整大小吗?pubcentered:bool,// 居中显示?(Wayland 不行)// 🎮 用起来咋样pubdrag_and_drop_support:bool,// 支持拖放文件?(Windows)pubactive: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:Option<EventLoopBuilderHook>,// 事件循环钩子pubshader_version:Option<ShaderVersion>,// OpenGL 版本兼容// 💾 数据存储pubapp_id:Option<String>,// 应用ID(决定配置文件放哪)}

🎯 常用场景速查

1. 最基础:固定大小窗口

letoptions=eframe::NativeOptions{initial_window_size:Some(egui::vec2(800.0,600.0)),resizable:false,// 不让用户拖大拖小..Default::default()};

2. 全屏应用(比如游戏、演示)

letoptions=eframe::NativeOptions{fullscreen:true,..Default::default()};

3. 置顶工具(比如悬浮计时器)

letoptions=eframe::NativeOptions{always_on_top:true,mouse_passthrough:true,// 鼠标穿透,点击下面的窗口decorated:false,// 无边框,更清爽..Default::default()};

4. 带图标的正式应用

letoptions=eframe::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_ID
macOS/Users/用户名/Library/Application Support/你的APP_ID
WindowsC:\Users\用户名\AppData\Roaming\你的APP_ID

📌Wayland 用户注意app_id还影响图标显示和窗口分组,记得设!

🧪 调试 vs 发布

开发时用默认设置就行,发布前再调这些:

letmutoptions=eframe::NativeOptions::default();// 正式发布时ifcfg!(not(debug_assertions)){options.icon_data=Some(load_my_icon());options.app_id=Some("com.myapp.prod".to_string());}

📌 一句话原则

用到的才配,配了才知道——窗口设置就像装修,开工前想清楚,开工后改也来得及。遇到具体需求再回来翻这个文件,五分钟搞定。

💡 记住:默认设置已经能跑起来,这些是让你跑得更舒服的“选配”。

http://www.jsqmd.com/news/399334/

相关文章:

  • 从零搭建JumpServer
  • 大数据领域 HBase 的安全机制解析
  • Python全能框架Feapder,四种模式应对复杂场景
  • 大数据领域数据科学的图像识别应用
  • AI原生应用助力决策支持:开启智能决策新时代
  • Flink在实时欺诈检测中的实战应用
  • 修复CVE-2024-20267:Cisco NX-OS中MPLS封装IPv6处理的高危DoS漏洞
  • AI人工智能领域,Stable Diffusion的应用案例
  • Netzwerk von Daten
  • 半结构化数据与数据仓库:集成方案与最佳实践
  • Warum ist Japan seit 1990 gefallen?
  • c# wpf生命周期
  • 基于LSTM神经网络的共享单车需求预测系统设计与实现
  • 环境介绍
  • Feedly 抓 News → 自动入库 Notion”的方案,并附上详细流程图(含分支:有 RSS / 没 RSS / 付费与免费)
  • 基于KPCA的故障诊断与检测探索
  • Mermaid 转 Visio 完整教程:流程图、时序图、状态图一键导出可编辑 .vsdx 文件
  • 题解:AcWing 853 有边数限制的最短路
  • 题解:AcWing 850 Dijkstra求最短路 II
  • 现在玩个游戏对面都是五个至尊
  • 题解:AcWing 845 八数码
  • 题解:AcWing 844 走迷宫
  • 京东e卡回收,盘活闲置好路子 - 京顺回收
  • JumpServer堡垒机部署与实战:从0到1搭建统一运维入口
  • 独生子女的“父母改善”:一个正在爆发的购房新命题
  • 题解:AcWing 843 n-皇后问题
  • 研究生阶段“大论文”与“小论文”分别是什么意思?
  • 《信号与系统》欧拉公式的本质的角度的旋转
  • 题解:AcWing 842 排列数字
  • CVE-2020-1957