likes
comments
collection
share

小册上新|打造集 Qt 、CEF 和 Node.js 所长的混合桌面开发框架

作者站长头像
站长
· 阅读数 31

该课程动笔时,正值基于 Electron 的 QQ For Linux 筹备公测,网传在 Windows 上新版本的 QQ 也将会基于 Electron。网上对 QQ 选择 Electron 的做法褒贬不一,有人感叹 QQ 的 Linux 版本终于来了,也有很多人调侃在电脑上会有几十个 Chromium 打架。但不管怎样,强如腾讯,在桌面开发上都放弃了纯 C++, 转而选择了 Electron。

不过,在另外一方面,纵然有 n-api 的加持,像 Electron 这样以 Web 为主的桌面开发框架仍旧在 Native 能力方面有天然弱势,尤其在多窗口能力方面。这方面从钉钉和 VSCode 这两个软件里可以看出,钉钉的底层是 CEF,而 VSCode 的底层是 Electron,可以发现 VSCode 在打开新窗口这一操作上明显要比钉钉克制。

当前 C++ 桌面开发框架最流行的是 Qt ,前端桌面开发框架最成熟的是 Electron。Qt 的开发成本太高,Electron 的 native 能力太弱。那有没有取长补短的方式呢?

有,我们可以在 Qt 里内嵌 CEF ,然后在 CEF 里内嵌 Node.js ,打造一个加强版本的 Electron

基于 Node.js、Qt 和 CEF 的桌面开发解决方案,上可快速接入来自 Node.js 生态的众多轮子,下可与各种硬件自由交互。非常适合工业缺陷检测、工业设计、文字处理、图像处理、编辑器等交互复杂且对性能和可扩展性有较高要求的场景。

这个课程会把这套桌面开发解决方案分享给大家,带大家打造一个可进可退的混合桌面软件开发框架

课程介绍

本课程所涉及到的主要编程语言为 C++, 所使用的构建工具为 CMake。课程会从最简单的使用 CMake 构建 CEF 和 Qt 应用开始,然后转移到更高级的话题中,例如如何使用 n-api 将一个 C++ 类包装到 Javascript 中,以及如何使用 Qt 的元对象系统将这个过程自动化。

对于中小型软件,很有可能仅用 Electron 或者仅用 Qt 就可以完成了,不需要这么复杂的解决方案,基于此,课程的内容分为两大部分:

  • 基础部分,其中包括开发环境的搭建,Qt 中如何嵌入 CEF,n-api 扩展的使用等,这些知识在大部分混合桌面开发框架里都能用得上。对于每一个知识点,我将用全网最精简的代码演示其用法,并且在基础部分的最后,搭配两个综合实战例子加强巩固。
  • 进阶部分, 这部分会介绍如何在 CEF 中集成 Node.js ,以及 Qt 的事件循环等内容。如果你想打造一套自己熟悉的混合桌面开发解决方案,或者想对 CEF 的底层原理有更清楚的认识,这部分内容绝对不能错过。

本课程的详细目录如下图:

小册上新|打造集 Qt 、CEF 和 Node.js 所长的混合桌面开发框架

本课程的所有章节的代码都可以在课程配套的仓库中找到, 大部分章节都附带完整能跑的例子。

课程主要面向的是偏向架构或者希望对底层有更深入的了解的开发人员。本课程假定同学们已经具备了 Qt、C++、CMake 和 Javascript 的基本知识,但也不用太担心,课程中的代码会尽可能精简,尽量避免使用高级特性,如果课程里使用了一些不太常见的特性,在文章中会尽可能给出详细的解释。

上新特惠,限时 6 折

3 月 22 日~3 月 29 日,上新限时 6 折,仅需 ¥ 17.94 💰

赶紧点击下方的图片,一起加入学习吧~

小册上新|打造集 Qt 、CEF 和 Node.js 所长的混合桌面开发框架