rxi/microui

GitHub: rxi/microui

一个用 ANSI C 编写的微型即时模式 UI 库,提供基础控件和布局,可嵌入任意渲染系统。

Stars: 5769 | Forks: 361

# ![microui](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/6a2d53a40c183739.png) 一个用 ANSI C 编写的*微型*、可移植、即时模式 UI 库 ## 功能特性 * 微型:大约 `1100 sloc` 的 ANSI C 代码 * 在固定大小的内存区域中工作:不分配额外的内存 * 内置控件:window、scrollable panel、button、slider、textbox、label、 checkbox、wordwrapped text * 适用于任何能够绘制矩形和文本的渲染系统 * 旨在让用户能轻松添加自定义控件 * 简单的布局系统 ## 示例 ![example](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/b98686c23f183741.png) ``` if (mu_begin_window(ctx, "My Window", mu_rect(10, 10, 140, 86))) { mu_layout_row(ctx, 2, (int[]) { 60, -1 }, 0); mu_label(ctx, "First:"); if (mu_button(ctx, "Button1")) { printf("Button1 pressed\n"); } mu_label(ctx, "Second:"); if (mu_button(ctx, "Button2")) { mu_open_popup(ctx, "My Popup"); } if (mu_begin_popup(ctx, "My Popup")) { mu_label(ctx, "Hello world!"); mu_end_popup(ctx); } mu_end_window(ctx); } ``` ## 截图 ![screenshot](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/5a52237d39183743.png) [**浏览器演示**](https://floooh.github.io/sokol-html5/sgl-microui-sapp.html) ## 用法 * 有关使用说明,请参阅 [`doc/usage.md`](doc/usage.md) * 有关使用示例,请参阅 [`demo`](demo) 目录 ## 注意 该库期望用户提供输入并处理生成的绘图命令,它本身不进行任何绘图操作。 ## 贡献 该库被设计为轻量级的,提供了一个基础,您可以轻松地向其添加自定义控件和 UI 元素;添加额外功能的 pull request 通常不会被合并。欢迎提交 Bug 报告。 ## 许可证 该库是自由软件;您可以根据 MIT 许可证的条款对其进行重新分发和修改。有关详细信息,请参阅 [LICENSE](LICENSE)。
标签:ANSI C, GUI, Immediate-mode, LangChain, MIT许可, SLOC, UI库, 内存安全, 即时模式, 图形界面, 客户端加密, 嵌入式UI, 工具库, 开源, 微型库, 渲染抽象, 游戏开发UI, 自定义控件, 轻量级