写点什么

C++ 开发,这些 GUI 库一定不要错过!

作者:Jackpop
  • 2022-12-16
    浙江
  • 本文字数:1747 字

    阅读完需:约 6 分钟

程序员宝藏库https://gitee.com/sharetech_lee/CS-Books-Store


如果问 Python 这类集成度非常高的编程语言 GUI 开发用什么库,可以列举出很多不错的第三方库。


但是,如果这个问题放在 C++这种基础的编程语言上,很多同学估计一时间都无从下手。


得益于强大的 GitHub,我们想要的很多东西在这上面基本都可以找到对应的开源项目。


因此,这些年我就养成了一个每天花一到两个小时浏览 GitHub 的习惯,这个过程中发掘到很多宝藏项目,为了帮助到更多同学,我每周都会整理分享出来,感兴趣的可以看一下最近一期的分享:


Python 开发者神器!这款搜索引擎比谷歌好用多了 8 赞同 · 0 评论文章


回到问题本身,C++ GUI 开发应该用什么库?


看过这么多项目,GUI 开发这么重要的一个方向自然不会缺少,今天就来给大家分享几个非常不错的 C++ GUI 开发方面非常不错的库!

1. ImGui

Star:43.8k



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 公司工作经验,先后从事过计算机视觉、推荐系统、后端、数据等相关工作。如果同学们在升学考研、职业规划、高考志愿、简历优化、技术学习等方面有困惑,欢迎大家前来咨询!

发布于: 刚刚阅读数: 3
用户头像

Jackpop

关注

还未添加个人签名 2020-09-16 加入

公众号:平凡而诗意,微信:code_7steps,全网粉丝超20万,技术进阶、优质资源、实用工具,欢迎关注!

评论

发布
暂无评论
C++开发,这些GUI库一定不要错过!_Jackpop_InfoQ写作社区