一、Qt
官网:https://www.qt.io/
C++ 领域最流行的跨平台桌面端软件开发框架,Qt 有界面描述语言(XML 描述界面),可以通过设计器拖拽空间设计界面,编译期界面描述语言被转义成 C++ 代码
Python 基于 PyQt 做 Qt 应用。
二、GTK
官网:https://www.gtk.org/
GTK 是 C 语言开发的,但有很多语言的绑定,比如官方支持的 JavaScript、Rust 等,当然用 C++ 语言操作 GTK 也很方便,自绘引擎(Cairo)
Linux 操作系统领域流行,有非常多的 Linux 桌面软件都是基于 GTK 开发的,
三:CEF
官网:https://bitbucket.org/chromiumembedded/cef/src/master/
CEF 是 2008 年创立的,基于 Chromium 的跨平台 GUI 框架,比如微信桌面端、网易云音乐桌面端(Win)、QQ 桌面端、微信桌面端、MATLAB、FoxMail、OBS Studio,装机量破亿
CEF 是 Chromium Embedded Framework 的简写,顾名思义,这是一个把 Chromium 嵌入其他应用的框架。这个开源项目是 Marshall Greenblatt 在 2008 年创立的,由 C/C++ 编写而成,它通过提供稳定的 API 来避免开发者被 Blink、V8、Chromium 等复杂的代码逻辑所困扰。CEF 非常注重开发者的使用体验,很多功能都有默认实现方式,遵从约定优于配置的原则,开发者可以很轻松地驾驭 CEF 框架
CEF 的系列课程:https://juejin.cn/book/7075387142121193502
四、NW.js
官网:https://nwjs.io/
NW.js 最早把 Chromium 和 Node 绑定到一起,用前端知识做界面,用 Node 技术访问操作系统,NW.js 基于 MIT 开源,可以无忧使用,用的人越来越少,维护的投入也不如 Electron 大
五、Electron
官网:https://www.electronjs.org/
Electron 的作者曾经在 NW.js 团队工作过(NW.js 项目贡献第二多的人就是 Electron 的作者),
浏览器相关的 API,还是系统级 API,Electron 提供的都比 NW.js 多
六、TAURI
官网:https://tauri.studio/
采用的技术方案与 webview 类似,开源免费。webview 框架碰到的问题 TAURI 都有,使用 Rust 开发,将来会支持 Deno,作者说将来会直接使用 webview 的技术来支持多平台
七、webview
官网:https://github.com/webview/webview
Mac Cocoa/WebKit,Linux gtk-webkit2,Windows 10 Edge,开源且免费(MIT)有 go、Rust、Python 等语言的绑定,不过官方支持的是 go 语言,C 和 C++,操作浏览器的 API 非常少
八、webview2
官网:https://developer.microsoft.com/zh-cn/microsoft-edge/webview2/
webview2微软 Edge 浏览器团队推出的跨平台 GUI 引擎,是闭源的,封了一个 Chromium 浏览器核心,多进程架构,甚至比 Electron 还要多一个进程(为了复用二进制资源),资源占用比较多。
九、flutter-desktop
官网:https://docs.flutter.dev/desktop
谷歌的跨平台开发框架,开源、免费、文档齐全、投入力度大且持久,flutter desktop 端都比较稳(skia 自绘引擎)
十、Compose Multiplatform
官网:https://www.jetbrains.com/lp/compose-mpp/
Compose Multiplatform是JetBrains 搞的跨平台 GUI 框架,自绘引擎用的是 Google 的 skia,这个自绘引擎稳的很,Chrome 和 Flutter 都是用的它,
渲染之类的工作不太会出问题。比 Java 生态圈里的 Swing 和 JavaFx
JetBrains 对 Kotlin 开发者兼容很好,Java 生态下的也兼容,访问系统级 API 很友好
十一、MAUI
官网:https://github.com/dotnet/maui
微软的跨平台 GUI 框架,不仅仅支持桌面端,还支持移动端,但官方并不支持 Linux 的桌面端,
是.NET 平台下的 GUI 框架,有自绘引擎,对 C# 开发者很友好,界面依然是用 XAML 描述的
十二、Sciter
官网:https://www.qt.io/
Sciter 是 2006 年创建的跨平台闭源 GUI 框架,商业授权问题,内部封装浏览器核心,对浏览器核心进行精简,不像 Electron 和 NW.js 动辄上百兆的体积,它只要 6M 左右就够了。底层的绘制引擎我记得是谷歌的 skia。
集成了 Fabrice Bellard 大神的 QuickJs 之后,就全面支持 JavaScript , C++ 开发,对 C++ 开发者很友好,有 Rust、go、Python 等语言的绑定。
RmlUi 和 Sciter 很像,可以看成 Sciter 的替代框架
十三、Duilib
官网:https://github.com/duilib/
2010 年国内一个开发者开发的 GUI 开发框架,底层基于 DirectUI 开发,所以只支持 Windows 平台,不支持跨平台,基于这个技术做桌面端应用,比如网易、腾讯、百度
十四、FLTK
官网:https://www.fltk.org/
FLTK 是 1998 年创建的跨平台开源 GUI 框架,非常轻量级,支持静态连接,一个简单的应用编译后只有 500K 左右, OpenGL自绘引擎
十五、wxWidgets
官网:www.wxwidgets.org/
wxWidgets 是 1992 年英国的一个大学教授开创的跨平台 GUI 软件,也非常成熟稳定,商业授权非常友好, C++ 开发的,兼容跨平台,Windows 是 Windows 窗口风格、Linux 是 Linux 窗口风格
十六、ImGui
官网:https://github.com/ocornut/imgui
GUI 框架的实现原理和开发方式可谓独树一帜,支持很多种绘制引擎比如 OpenGL,Directx,Vulkan 等
框架:GitHub - Immediate-Mode-UI/Nuklear: A single-header ANSI C immediate mode cross-platform GUI library