如果问Python这类集成度非常高的编程语言GUI开发用什么库,可以列举出很多不错的第三方库。
但是,如果这个问题放在C++这种基础的编程语言上,很多同学估计一时间都无从下手。
得益于强大的GitHub,我们想要的很多东西在这上面基本都可以找到对应的开源项目。
因此,这些年我就养成了一个每天花一到两个小时浏览GitHub的习惯,这个过程中发掘到很多宝藏项目,为了帮助到更多同学,我每周都会整理分享出来,感兴趣的可以看一下最近一期的分享:
Python开发者神器!这款搜索引擎比谷歌好用多了8 赞同 · 0 评论文章
回到问题本身,C++ GUI开发应该用什么库?
看过这么多项目,GUI开发这么重要的一个方向自然不会缺少,今天就来给大家分享几个非常不错的C++ GUI开发方面非常不错的库!
1. ImGui
Star:43.8k
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mA1NdeRz-1671198698159)(https://pic2.zhimg.com/80/v2-86a9cb6927948bd18811f10cd2b3c763_720w.gif)]
ImGui是一款轻量化、无依赖、功能强大的C++ GUI库,它具有快速、可移植、无依赖等亮点。
ImGui 的目标是实现快速迭代并使开发者能够创建工具和应用。它特别适合集成到游戏引擎、实时 3D 应用程序、全屏应用程序、嵌入式应用程序或操作系统功能非标准的控制台平台上的任何应用程序中。
简单概括,它具有如下特点:
- 最小化状态同步
- 最小化用户端的状态存储
- 最大限度地减少设置和维护
- 易于使用来创建反映动态数据集的动态 UI
- 易于使用来创建代码驱动和数据驱动的工具
- 易于使用来创建临时的短命工具和长命的、更精细的工具
- 便携、最小化依赖、可移植
- 性能高和低内存消耗
2. NanoGUI
Star:1.1k
NanoGUI 是用于 OpenGL 3+、GLES 2/3 和 Metal 的极简跨平台工具库。
基于NanoVG,它支持自动生成布局、有状态的 C++ lambdas 回调,内含很多高效的小部件类型和支持 Retina 的 Apple 设备渲染。
NanoGUI 目前适用于 Mac OS X (Clang)、Linux(GCC 或 Clang)、FreeBSD (Clang) 和 Windows(Visual Studio ≥ 2017)。
另外,需要说明,它需要最新的 C++17 编译器。
3. RmlUi
Star:1.5k
RmlUi 是基于 HTML 和 CSS 标准的 C++ GUI库,目标是为任何项目的界面需求提供完整的解决方案。 它是 libRocket 项目的一个分支,引入了新功能、修复了错误并改进了性能。
RmlUi 一个轻量级和高性能的库,拥有自己的布局引擎和很少的外部依赖。 从本质上讲,RmlUi 获取您的 HTML/CSS 类源文件并将它们转换为顶点、索引和绘制命令,然后使用自己的渲染器来绘制它们。
特点:
- 跨平台:Windows、macOS、Linux、iOS等。
- 动态布局
- 完整的动画和转换支持
- 高效的应用程序范围样式,带有定制的模板引擎
- 功能齐全的控件集:按钮、滑块、下拉菜单等
4. Elements
Star:2.4k
Elements是一个轻量级的、细粒度的、独立的、模块化的GUI库。
它可以在任何应用程序中使用,并且可以与其他GUI库和框架很好地配合。
另外,它使用起来非常简单,开箱就容易使用,并有大量的例子。
移植到一个新的主机目标也非常简单,只需要移植几个文件。
5. FTXUI
Star:3.9k
FTXUI是一款用于终端下用户界面开发的C++工具库。
功能风格方面受React启发,愈发非常简单,支持动画、绘画,而且无依赖、跨平台(Linux、macOS、WebAssembly、Windows)。
6. cocos2d-x
Star:16.7k
cocos2d-x是一个多平台框架,用于构建2D游戏、交互式界面及其他图形应用程序。
它基于cocos2d-iphone,但没有使用Objective-C,而是使用C++。它可以在iOS、Android、macOS、Windows和Linux上运行。
cocos2d-x框架结构:
cocos2d-x在功能方面可以说是非常全面,动作、效果、菜单、按钮、引擎、场景管理、动画、字体、响应键盘/鼠标、声音引擎等方面都有很完善的支持。
建议大家有空可以多浏览Github,有很多好用的开源免费工具。但是,目前Github上项目多如牛毛,而且刷榜现在也非常严重,想要找到优质的项目变得越来越难。这里,给大家推荐Github上一个非常不错的项目《DevWeekly》,这个项目每周都会精挑细选一些优质的开源项目,涵盖C++、JAVA、JavaScript、Python、Go等不同编程语言。此外,还有一些开源工具、优秀的技术文章,建议大家看一下:
hello,大家好,我是Jackpop,重点大学本科毕业后保送到哈工大计算数学专业读研,有多年国内头部互联网、IT公司工作经验,先后从事过计算机视觉、推荐系统、后端、数据等相关工作。如果同学们在升学考研、职业规划、高考志愿、简历优化、技术学习等方面有困惑,欢迎大家前来咨询!
转载:https://blog.csdn.net/jakpopc/article/details/128348457