桌面软件开发框架

一、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

猜你喜欢

转载自blog.csdn.net/ejinxian/article/details/132502977
今日推荐