Repolode
emilk

emilk/egui

一个易于使用的 Rust 即时模式 GUI 库,可同时运行在 Web 和原生平台,也可嵌入游戏引擎。

Star
31,659
Fork
2,228
未关闭 Issue
1,068
最近提交
12小时前

这是什么?

egui 是一个用纯 Rust 编写的即时模式(immediate mode)GUI 库。它不需要维护带回调的控件树,而是每一帧调用 UI 函数,例如 ui.button("保存").clicked(),并直接根据返回结果执行逻辑,使界面代码保持简洁,也避免界面状态与应用状态不同步。

库本身不负责窗口管理、输入采集或渲染,每帧只输出三角形网格,由集成层负责绘制。官方的 eframe 框架提供了这一层,可用于编写面向 Web、Linux、Mac、Windows 和 Android 的应用;社区也提供了将 egui 嵌入其他游戏引擎的集成方案。

内置控件包括标签、滑块、复选框、颜色选择器和文本编辑器,并提供布局、可调整大小的窗口、滚动区域、图片显示以及基于 AccessKit 的无障碍支持。项目说明指出 API 仍在演进,新版本可能包含破坏性变更。

核心功能

  • 01即时模式 API:界面以普通函数调用的方式编写,每帧执行
  • 02通过 eframe 可运行在 Web(WebAssembly)以及 Linux、Mac、Windows、Android 原生平台
  • 03内置滑块、文本编辑、颜色选择器、可折叠区域等控件
  • 04支持水平、垂直、多列和自动换行等布局方式
  • 05通过 AccessKit 在 Windows 和 macOS 上提供无障碍支持
  • 06输出三角形网格,可集成到游戏引擎中渲染

适用场景

  • 用一套 Rust 代码开发跨平台桌面工具
  • 为游戏引擎或仿真程序添加调试、参数调节面板
  • 用 Rust 编写并编译为 WebAssembly 的简单 Web 应用
  • 快速原型化交互式数据可视化工具

快速上手

  1. 1

    在本地运行 egui 演示应用

    cargo run --release -p egui_demo_app
  2. 2

    阅读官方文档和示例以编写自己的应用

使用前须知

  • API 仍在变化中,新版本会包含破坏性更改。
  • 在 Linux 上运行演示应用前需要先安装若干系统软件包。
  • 它不是原生外观的 GUI,主要面向 Rust 开发者。

标签

常见问题

egui 是什么?
一个易于使用的 Rust 即时模式 GUI 库,可同时运行在 Web 和原生平台,也可嵌入游戏引擎。 egui 是一个用纯 Rust 编写的即时模式(immediate mode)GUI 库。它不需要维护带回调的控件树,而是每一帧调用 UI 函数,例如 ui.button("保存").clicked(),并直接根据返回结果执行逻辑,使界面代码保持简洁,也避免界面状态与应用状态不同步。
egui 可以免费使用吗?用的什么许可证?
egui 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
egui 还在维护吗?
活跃维护中。egui 最近一次提交是在 2026年10月21日。
egui 适合用来做什么?
用一套 Rust 代码开发跨平台桌面工具 为游戏引擎或仿真程序添加调试、参数调节面板 用 Rust 编写并编译为 WebAssembly 的简单 Web 应用 快速原型化交互式数据可视化工具
egui 怎么安装和运行?
在本地运行 egui 演示应用: cargo run --release -p egui_demo_app 阅读官方文档和示例以编写自己的应用
在哪里获取 egui?
源代码和安装说明在 GitHub 上:https://github.com/emilk/egui

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目