MicroUI – 一个用ANSI C编写的小巧、可移植的即时模式UI库
摘要
MicroUI是一个用ANSI C编写的最小化、可移植的即时模式UI库,在固定的内存占用下提供窗口、按钮、滑块和文本框等基本控件。
查看缓存全文
缓存时间: 2026/06/17 14:41
rxi/microui
来源:https://github.com/rxi/microui
microui
一个微小、可移植、即时模式的 UI 库,使用 ANSI C 编写
特性
- 微小:约
1100 行ANSI C 代码 - 在固定大小的内存区域内工作:不额外分配内存
- 内置控件:窗口、可滚动面板、按钮、滑块、文本框、标签、复选框、自动换行文本
- 适用于任何能绘制矩形和文本的渲染系统
- 设计便于用户轻松添加自定义控件
- 简单的布局系统
示例
示例
if (mu_begin_window(ctx, "我的窗口", mu_rect(10, 10, 140, 86))) {
mu_layout_row(ctx, 2, (int[]) { 60, -1 }, 0);
mu_label(ctx, "第一个:");
if (mu_button(ctx, "按钮1")) {
printf("按钮1被按下\n");
}
mu_label(ctx, "第二个:");
if (mu_button(ctx, "按钮2")) {
mu_open_popup(ctx, "我的弹出窗口");
}
if (mu_begin_popup(ctx, "我的弹出窗口")) {
mu_label(ctx, "你好,世界!");
mu_end_popup(ctx);
}
mu_end_window(ctx);
}
截图
截图
浏览器演示 (https://floooh.github.io/sokol-html5/sgl-microui-sapp.html)
使用说明
- 查看
doc/usage.md获取使用说明 - 查看
demo目录查看使用示例
注意事项
该库期望用户提供输入并处理生成的绘制命令,它本身不执行任何绘制操作。
贡献
该库设计为轻量级,提供了一个基础,您可以轻松添加自定义控件和 UI 元素;添加额外功能的 Pull Request 可能不会被合并。欢迎提交错误报告。
许可证
本库是自由软件;您可以根据 MIT 许可证的条款重新分发和/或修改它。详情请参见 LICENSE。
相似文章
Movwin:我的(未发布)TUI 框架
一篇博文,详细介绍了作者个人未发布的、基于 ncurses 的 Python TUI 框架 'movwin',重点突出了其对 Unicode 的支持和性能表现,并因担心 AI 公司爬取代码而决定将其保密。
Tiny-C 参考手册摘录
来自 tiny-c 参考手册的摘录,描述了 tiny-c 编程语言的起源、设计理念和特性,该语言在简单集成的环境中结合了 BASIC、LOGO 和 C 的元素。
适用于极小屏幕的5×5像素字体
一款为8位微控制器和微型OLED屏幕手工打造的5×5像素字体,仅占用350字节。
@tom_doerr: 生成的UI比JSON少用67%的token https://github.com/thesysdev/openui…
OpenUI是一个开源生成式UI框架,它采用流式优先语言,生成的UI相比JSON可减少多达67%的token,并包含React运行时和聊天界面。
Show HN: Shirei, 用原生Go编写的跨平台GUI框架
Shirei是一个为Go语言设计的跨平台GUI框架,采用即时模式API,支持在MacOS、Windows和Linux上生成原生可执行文件,无需外部依赖。