MicroUI – 一个用ANSI C编写的小巧、可移植的即时模式UI库

Hacker News Top 工具

摘要

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)

使用说明

注意事项

该库期望用户提供输入并处理生成的绘制命令,它本身不执行任何绘制操作。

贡献

该库设计为轻量级,提供了一个基础,您可以轻松添加自定义控件和 UI 元素;添加额外功能的 Pull Request 可能不会被合并。欢迎提交错误报告。

许可证

本库是自由软件;您可以根据 MIT 许可证的条款重新分发和/或修改它。详情请参见 LICENSE

相似文章

Movwin:我的(未发布)TUI 框架

Hacker News Top

一篇博文,详细介绍了作者个人未发布的、基于 ncurses 的 Python TUI 框架 'movwin',重点突出了其对 Unicode 的支持和性能表现,并因担心 AI 公司爬取代码而决定将其保密。

Tiny-C 参考手册摘录

Hacker News Top

来自 tiny-c 参考手册的摘录,描述了 tiny-c 编程语言的起源、设计理念和特性,该语言在简单集成的环境中结合了 BASIC、LOGO 和 C 的元素。