news 2026/6/9 20:16:11

鸿蒙 PC 开发环境对比:Electron vs Qt,各跑一个最小 Demo 看完你就懂了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
鸿蒙 PC 开发环境对比:Electron vs Qt,各跑一个最小 Demo 看完你就懂了

鸿蒙 PC 开发环境对比:Electron vs Qt,各跑一个最小 Demo 看完你就懂了

欢迎加入开源鸿蒙 PC 社区:https://harmonypc.csdn.net/

本文同时跑通两个鸿蒙 PC 桌面应用开发路线的最小 Demo——Qt 自研 Hello World 和 Electron Markdown 编辑器。所有数据来自真实操作,给你一份"我到底该选哪条路"的决策参考。



项目信息说明

项目内容
本文目的横向对比 Electron 和 Qt 两条鸿蒙 PC 开发路线
对比维度环境搭建 / 工具链 / 难度 / 最小 Demo 工时 / 适用场景
Electron 侧素材淼学派对的 Electron 环境搭建 + markdownify 迁移实战
Qt 侧素材仓库的 OpenCloudOS 9 构建 Qt 交叉编译服务器 + IronLog 自研实战
目标读者即将做鸿蒙 PC 桌面应用、但不知道选 Electron 还是 Qt 的工程师

一、先讲结论

给所有怕看长文的人

你是推荐路线理由
前端开发者(React / Vue / 熟悉 JS)Electron业务代码零改动,半天上鸿蒙
C++ 桌面开发者(Qt / MFC / Win32 背景)Qt工具链熟、性能好、原生集成深
跨平台维护者(已有 Electron 桌面应用想搬到鸿蒙 PC)Electron同一套代码三个平台共享
重型桌面应用开发(IDE / 设计工具 / 视频处理)Qt性能 + 系统级集成上限更高
完全新手⚠️ 看你想学什么栈,但Electron 入门门槛低(不要 Linux 服务器)

核心区别一句话

Electron是"把 Web 应用塞进鸿蒙容器跑"——产物是 HAP,门槛是前端。
Qt是"把 C++ 桌面应用交叉编译成 .so 塞进 HAP"——产物也是 HAP,门槛是 C++ + 交叉编译。


二、环境搭建对比表

这是最关键的一张表——两条路第一天要做的事完全不一样

维度Electron 路线Qt 路线
是否需要 Linux 服务器❌ 不需要,纯 Mac/Win 本地✅ 必须,做交叉编译
要装的本地工具DevEco Studio + Node.js v18+DevEco Studio
要装的服务器工具❌ 无OHOS SDK 2.5 GB + Qt-OHOS 622 MB + cmake/ninja/patchelf
关键依赖libelectron预编译包(华为云下载)OHOS Native SDK + Qt for HarmonyOS 5.12.12
依赖总大小~500 MB~4 GB
下载时长(国内)5-10 分钟8-15 分钟(华为云镜像)
首次环境搭建工时30 分钟到 1 小时30 分钟到半天
环境踩坑数主要是签名(1-2 个)host 工具 .exe + Qt5 找不到(2-3 个)
官方文档完备度较好(淼学派对系列博文)较好(特立独行的猫a 系列博文)

三、Demo #1:Electron 最小应用(30 分钟跑通)

跟着淼学派对的环境搭建文章走一遍。

3.1 准备阶段(15 分钟)

# 1. 装 Node.js v20.18.1(如果还没装)brewinstallnode@20# 2. 下载 libelectron 预编译包# 浏览器打开:# https://devcloud.cn-north-4.huaweicloud.com/codehub/.../electron34-release# 下载:v34.6.0-20251105.1-release.zip# 3. 解压(约 500MB)unzipv34.6.0-*.zip# 4. 查看结构lslibelectron/# lib.unstripped/ ← Chromium so 库# ohos_hap/ ← 鸿蒙工程目录(DevEco 打开这个!不是 libelectron)

3.2 用 DevEco 打开 + 签名(10 分钟)

1. DevEco Studio → File → Open → 选 libelectron/ohos_hap/ (⚠️ 不要打开 libelectron 根目录,DevEco 不认) 2. 等首次索引完成(10-30 分钟,看网速) 3. File → Project Structure → Signing Configs - 勾选 "Automatically generate signature" - 登录华为账号 - 等 30 秒,DevEco 自动填充 cert/profile/p12 路径 4. 检查 build-profile.json5 的 products.default.signingConfig: "default" (这是仓库 8 大坑里的 #6,每次都要确认)

3.3 跑起来(5 分钟)

# 1. 连接鸿蒙设备或模拟器hdc list targets# 2. DevEco 点 ▶️ Run# 等 hap 包构建 + 安装 + 启动

成功标志:模拟器/真机上看到一个空白的 Electron 窗口——这就是最小可运行 Demo。

3.4 加点业务代码(10-30 分钟)

# 进入 Vue3 应用目录cdohos_hap/web_engine/src/main/resources/resfile/resources/app/vue-app# 开发模式(浏览器预览,不用鸿蒙设备)npmrun dev# 浏览器打开 http://127.0.0.1:5173/# 写完业务后生产构建npmrun build# 产物自动放到 dist/,被 HAP 加载

到这里你已经会鸿蒙 Electron 开发了——业务全在 Vue3 项目里,逻辑零改动,鸿蒙这层只是个壳。


四、Demo #2:Qt 最小应用(半天跑通)

跟着仓库的 OpenCloudOS 9 服务器环境搭建 走一遍。

4.1 服务器环境(30 分钟)

# SSH 登录 Linux 服务器(OpenCloudOS 9 / Ubuntu 22)sshroot@xxx.xxx.xxx.xxx# 1. 装系统包yuminstall-ycmake ninja-build patchelf\qt5-qtbase-devel qt5-qttools-devel qt5-qtsvg-devel\rsyncgit-lfsunzip# 2. 下载 OHOS Native SDK(2.5 GB)wgethttps://repo.huaweicloud.com/openharmony/os/5.0.1-Release/ohos-sdk-windows_linux-public.tar.gztarxzf ohos-sdk-*.tar.gzunzipohos-sdk-extracted/linux/native-linux-x64-*.zip-d/root/ohos-sdk/12/# 3. 拉 Qt-OHOS(git lfs 517 MB)gitlfsinstallmkdir-p/opt/qt-ohos&&cd/opt/qt-ohosgitclone https://gitcode.com/OpenHarmonyPCDeveloper/ohos_Qt5.12.12.git.unzipqt_ohos_release/qt-5.12.12-ohos_release_*.zip-dqt-5.12.12-ohos/# 4. 软链系统 Qt5 工具覆盖 Qt-OHOS 自带的 Windows .exe(🕳️ 坑 #1)QT_BIN=/opt/qt-ohos/qt-5.12.12-ohos/qt-5.12.12-ohos/binfortinmoc rcc uic lrelease qmake;domv$QT_BIN/${t}.exe$QT_BIN/${t}.exe.bakln-sf/usr/bin/${t}-qt5$QT_BIN/${t}.exedone# 5. 环境变量永久化echo"export OHOS_SDK_ROOT=/root/ohos-sdk/12">>~/.bashrcecho"export QT_OHOS_ROOT=/opt/qt-ohos/qt-5.12.12-ohos/qt-5.12.12-ohos">>~/.bashrcsource~/.bashrc

4.2 写 Hello World(15 分钟)

mkdir-phello-qt/src&&cdhello-qt

src/main.cpp

#include<QApplication>#include<QLabel>intmain(intargc,char*argv[]){QApplicationapp(argc,argv);QLabellabel("Hello, HarmonyOS PC + Qt!");label.setStyleSheet("font-size: 24px; padding: 40px;");label.show();returnapp.exec();}

CMakeLists.txt

cmake_minimum_required(VERSION 3.16) project(hello_qt CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTORCC_OPTIONS "--no-compress") # ← 仓库 8 大坑里的 #4 find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets) add_library(hello_qt SHARED src/main.cpp) # ← SHARED 不是 executable target_link_libraries(hello_qt PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets)

4.3 交叉编译(15 分钟)

mkdirbuild-ohos&&cdbuild-ohos cmake-GNinja\-DCMAKE_TOOLCHAIN_FILE=$OHOS_SDK_ROOT/native/build/cmake/ohos.toolchain.cmake\-DOHOS_ARCH=arm64-v8a\-DQt5_DIR=$QT_OHOS_ROOT/lib/cmake/Qt5\-DCMAKE_FIND_ROOT_PATH=$QT_OHOS_ROOT\-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=BOTH\..ninja# [4/4] Linking CXX shared library libhello_qt.so# 5 项产物体检filelibhello_qt.so# ARM aarch64 ✓$OHOS_SDK_ROOT/native/llvm/bin/llvm-nm-Dlibhello_qt.so|grep' main$'# T main ✓$OHOS_SDK_ROOT/native/llvm/bin/llvm-readelf-llibhello_qt.so|grepLOAD# 0x1000 ✓

4.4 HAP 集成 + DevEco Run(30-60 分钟)

# 1. scp 拉回 Macscproot@server:/path/to/libhello_qt.so.# 2. 复制鸿蒙 QT 模板 → HelloQtOhos/cp-r鸿蒙QT模板/ HelloQtOhos/# 3. 把所有 .so 倒进 entry/libs/arm64-v8a/cplibhello_qt.so$QT_OHOS_ROOT/lib/libQt5*.so HelloQtOhos/entry/libs/arm64-v8a/# 4. 改 APP_LIBRARY_NAME / bundleName# 5. DevEco Studio 打开 → 自动签名 → Run

成功标志:模拟器/真机上看到 “Hello, HarmonyOS PC + Qt!” 字样。


五、两个 Demo 跑完后的真实数据对比

维度Electron DemoQt Demo
总工时30-50 分钟半天(含服务器环境搭建)
从写代码到看到效果10 分钟1 小时(首次)
代码量0 行(用 Vue3 模板)15 行(C++ + CMake)
要懂的概念数5 个(DevEco / 签名 / hdc / npm / IPC)12 个(CMake / toolchain / sysroot / AUTOMOC / 4KB 对齐 / SHARED / dlsym main / NEEDED / patchelf / HAP / libqohos / Qt-OHOS bin .exe)
首次踩坑数1(白屏 GPU 问题,仅复杂 Demo 触发)2-3(host 工具 / Qt5 找不到 / 签名)
跨平台代码复用macOS / Win / Linux / 鸿蒙 共享仅鸿蒙(同代码桌面 Qt 也能编但需要分别构建)
二次迭代速度npm run build + 同步资源(1-2 分钟修代码 → 服务器编 → 拉回 → DevEco Run(5-15 分钟

六、各自适合什么场景

✅ Electron 适合

  • 已有 Web 应用想搬到鸿蒙 PC:markdownify / marktext / VSCode Web 这类
  • 前端团队主导的鸿蒙 PC 应用:JS/TS 工程师占主体
  • 快速验证 idea:30 分钟出原型这件事 Qt 做不到
  • UI 复杂度高、性能要求一般:表单 / 编辑器 / 仪表盘类
  • 跨多个平台:Win + macOS + Linux + 鸿蒙 PC 同一套代码

✅ Qt 适合

  • C++ 桌面应用历史负担:已有 Qt 桌面应用要搬鸿蒙
  • 性能敏感:实时音视频、CAD、3D 渲染、IDE 这类
  • 系统级集成:直接调系统 API、自绘大量复杂图形、低延迟交互
  • 重型应用:LiteIDE / KDiff3 / QElectroTech 这种
  • 打包体积敏感:Qt HAP 比 Electron HAP 通常小 30-40%

❌ 各自的坑

Electron 的真实陷阱

  • ⚠️ 整包大小:Electron Runtime 自带 Chromium,HAP 体积常 100-200 MB+
  • ⚠️ 启动速度:要加载 Chromium 进程,冷启动 1-3 秒
  • ⚠️ GPU 白屏坑:鸿蒙壳工程CommandLineAdapter.ets默认--use-gl=egl会闪退,要改--use-gl=disabled(淼学派对 markdownify 那篇踩过)
  • ⚠️ 原生能力调用:要懂 IPC + preload,对纯前端有学习曲线

Qt 的真实陷阱

  • ⚠️ 必须有 Linux 服务器(云服务器至少 2 核 4G)
  • ⚠️ Qt-OHOS host 工具是 Windows.exe,要软链系统 Qt5
  • ⚠️ moc ABI 5.15 vs 5.12 错位,复杂项目要写 perl 脚本批量降级
  • ⚠️ 4KB vs 64KB 页对齐(新版 Qt-OHOS 已修,但老资料还在提醒)
  • ⚠️ 8 大坑全套都要趟一遍

七、决策树:到底选哪条?

你要在鸿蒙 PC 做什么? | +-----------+-----------+ | | 已有 Web 应用 已有 C++ 桌面应用 /想搬过来 /想搬过来 | | 👉 Electron 👉 Qt (markdownify (KDiff3 / DiffPDF 套路) 套路) | | OR:从 0 开发新应用 | +-----------+-----------+ | | 前端 / 全栈背景 C++ 桌面背景 | | 👉 Electron 👉 Qt | | OR:又是新人,没背景 | 你想学什么栈? +-----------+-----------+ | | 学 Web 学 C++/系统编程 | | 👉 Electron 👉 Qt 入门 30 分钟 入门半天 | | 性能 / 体积 要求高吗? +-----------+-----------+ | | 不在意 在意 | | 👉 Electron 👉 Qt

八、我个人的两条路推荐顺序

如果你只有一个周末,跑通一条路:

选 Electron。30 分钟出第一个能跑的 HAP,剩下时间写业务。

如果你有一周

两条都试一下。Electron 第 1 天 + Qt 第 2-5 天,对鸿蒙 PC 桌面整个生态会有立体感受。

如果你打算长期投入鸿蒙 PC 开发

两条都要会。鸿蒙 PC 桌面生态的未来不会只有一条路——大部分应用走 Electron(拼 UI 速度),少数性能敏感的走 Qt(拼能力上限)。


九、关键参考链接

Electron 路线

  1. 鸿蒙版本 Electron 框架环境搭建并实现 XH 笔记应用 · 淼学派对(Electron 入门第一篇
  2. electron-markdownify 从普通 Electron 迁移到 OpenHarmony Electron HAP 的完整实践 · 淼学派对
  3. marktext-develop 鸿蒙适配全记录 · 淼学派对
  4. Electron 开源框架下实际鸿蒙 PC 应用开发——AI 英语单词记忆卡实战 · 红目香薰
  5. 厨房里的化学生态用鸿蒙 PC 的 Electron 框架实现——上架操作全流程 · 红目香薰(上架流程

Qt 路线

  1. 鸿蒙 PC 生态三方软件移植:开发环境搭建及三方库移植指南 · 特立独行的猫a(环境搭建第一篇
  2. Qt 开源软件 DiffPDF 适配鸿蒙 PC 全流程实战 · 一键难忘(Qt 移植第一篇
  3. HarmonyOS 鸿蒙 PC 端 Qt 应用开发:第三方 Qt 开源软件移植指南 · 特立独行的猫a
  4. HarmonyOS 鸿蒙 PC 开源 QT 软件移植:基于 Qt Widgets 的网络调试助手工具 · 特立独行的猫a(Qt Widgets demo

十、写在最后

Electron 和 Qt 不是对手,是互补——它们覆盖鸿蒙 PC 应用生态的不同象限:

  • Electron:拉低门槛,让前端社区涌入鸿蒙
  • Qt:拉高上限,让重型桌面应用搬过来

我自己用了 10 年 Qt,最近做完 10 个 Qt 适配项目后开始研究 Electron——两条路我都建议会一点。任何一个想长期做鸿蒙 PC 开发的人都会发现:

你的下一个项目可能因为 UI 简单选 Electron,再下一个因为性能要求高选 Qt。生态需要两条腿走路,开发者也需要

跑一遍最小 Demo 是最快的判断方式——花一个下午,你就有答案了。


本文所有 Electron 数据来自淼学派对、Dream-Y.ocean、红目香薰等社区开发者的实战博文,Qt 数据来自仓库 10 个真实跑通的适配项目。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 20:10:06

涡喷发动机及其延伸应用(一)

第一节&#xff1a;涡喷发动机其组成结构和工作原理 一、 核心工作原理&#xff1a;牛顿第三定律 所有喷气发动机&#xff0c;包括涡喷发动机&#xff0c;其最基本的工作原理都是牛顿第三定律&#xff1a;作用力与反作用力大小相等&#xff0c;方向相反。 发动机吸入空气&am…

作者头像 李华
网站建设 2026/6/9 20:09:11

如何快速打造专业数字书房:3步轻松搞定小说阅读神器

如何快速打造专业数字书房&#xff1a;3步轻松搞定小说阅读神器 【免费下载链接】uncle-novel &#x1f4d6; Uncle小说&#xff0c;PC版&#xff0c;一个全网小说下载器及阅读器&#xff0c;目录解析与书源结合&#xff0c;支持有声小说与文本小说&#xff0c;可下载mobi、epu…

作者头像 李华
网站建设 2026/6/9 20:01:02

3步轻松实现Android应用级虚拟定位:FakeLocation完全指南

3步轻松实现Android应用级虚拟定位&#xff1a;FakeLocation完全指南 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 你是否曾想过在玩游戏时"瞬移"到全球各地参与活动…

作者头像 李华
网站建设 2026/6/9 20:01:01

无死角全域可视,全轨迹实时智控——打造新一代智慧货运监管体系

无死角全域可视&#xff0c;全轨迹实时智控——打造新一代智慧货运监管体系在物流货运行业高速发展的当下&#xff0c;货运场站、物流园区、仓储库房、干线接驳、场内作业等场景的监管复杂度持续攀升。传统人工巡查、定点画面监控、事后追溯的粗放式管理模式&#xff0c;普遍存…

作者头像 李华