一个 Go 语言终端 UI 库,提供表单、表格、树形视图、列表等现成交互组件。
ArthurSonzogni/FTXUI
一个基于函数式风格的 C++ 终端用户界面库,无外部依赖,支持键盘和鼠标交互。
- Star
- 10,829
- Fork
- 628
- 未关闭 Issue
- 34
- 最近提交
- 10小时前
这是什么?
FTXUI 是一个用于构建终端用户界面的 C++ 库。开发者可以用 hbox、vbox、gridbox 等函数将元素组合成树状布局,并渲染到终端中。按钮、菜单、输入框、滑块、复选框、下拉框等交互组件会响应键盘、鼠标和窗口尺寸变化等事件。
库分为三个模块:screen 负责颜色和字符的底层渲染,dom 负责布局与样式,component 负责交互和主事件循环。它支持 UTF-8 与全角字符、多种颜色、文本样式、使用盲文或色块字符的画布绘图以及动画。项目没有外部依赖,可通过 CMake FetchContent、Bazel、Meson、vcpkg、Conan 等方式引入,也支持单头文件的合并构建以及 C++20 模块,主要面向 Linux 和 macOS,并支持 WebAssembly 与 Windows。
核心功能
- 01函数式、组件化的 API,用于组合布局和交互控件
- 02支持键盘和鼠标操作,内置菜单、输入框、滑块等控件
- 03提供 hbox、vbox、gridbox、flexbox 等灵活布局方式
- 04可使用盲文、色块或普通字符在画布上绘图
- 05支持 UTF-8 与全角字符,且没有外部依赖
适用场景
- 构建带菜单、表单或仪表盘的交互式命令行工具
- 开发终端游戏或文本模式的动画可视化程序
- 制作可随终端尺寸自适应的系统监控或日志查看器
快速上手
- 1
通过 CMake FetchContent 将 FTXUI 添加到你的 C++ 项目中(README 推荐的方式)
- 2
包含头文件 <ftxui/ftxui.hpp> 并链接 CMake 目标 ftxui::ftxui
使用前须知
- 主要支持 Linux 和 macOS;Windows 支持由贡献者提供。
标签
常见问题
- FTXUI 是什么?
- 一个基于函数式风格的 C++ 终端用户界面库,无外部依赖,支持键盘和鼠标交互。 FTXUI 是一个用于构建终端用户界面的 C++ 库。开发者可以用 hbox、vbox、gridbox 等函数将元素组合成树状布局,并渲染到终端中。按钮、菜单、输入框、滑块、复选框、下拉框等交互组件会响应键盘、鼠标和窗口尺寸变化等事件。
- FTXUI 可以免费使用吗?用的什么许可证?
- FTXUI 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- FTXUI 还在维护吗?
- 活跃维护中。FTXUI 最近一次提交是在 2026年10月21日。
- FTXUI 适合用来做什么?
- 构建带菜单、表单或仪表盘的交互式命令行工具 开发终端游戏或文本模式的动画可视化程序 制作可随终端尺寸自适应的系统监控或日志查看器
- FTXUI 怎么安装和运行?
- 通过 CMake FetchContent 将 FTXUI 添加到你的 C++ 项目中(README 推荐的方式) 包含头文件 <ftxui/ftxui.hpp> 并链接 CMake 目标 ftxui::ftxui
- 在哪里获取 FTXUI?
- 源代码和安装说明在 GitHub 上:https://github.com/ArthurSonzogni/FTXUI
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
1.4万695GoMIT更新于 2个月前
一个 Python 应用框架,用简洁的 API 构建可在终端或浏览器中运行的用户界面。
3.7万1366PythonMIT更新于 13天前
用 Go 编写的终端屏保,shell 空闲时自动启动,提供星座、代码雨、粒子等动画场景。
77120GoMIT更新于 6天前
一个用 Go 编写的跨平台终端仪表盘库,可构建可定制、支持窗口缩放的交互式界面。
3044150GoApache-2.0更新于 上个月