本开源鸿蒙OpenHarmony是一款开源分布式操作系统,生态体系持续完善。Qt作为成熟跨平台图形开发框架,OpenHarmony SIG 社区(简称SIG社区)完成与Qt适配,为图形界面、工业 HMI 开发带来更多方案选择。下文将分两大模块完整讲解:开发环境部署配置、Qt Quick 工程创建与实例调试,并基于触觉智能Purple Pi OH开发板演示。

图片

Qt跨平台开发框架

Qt是基于C++ 的跨平台开源应用程序开发框架,专注于图形用户界面和非GUI程序的构建。它提供丰富的GUI控件库和高级功能模块(如网络通信、数据库访问、多媒体处理),并采用独特的信号与槽机制实现高效组件通信。支持OpenGL、Vulkan等图形接口,以及针对嵌入式系统的EGLFS无窗口模式和LinuxFB帧缓冲等,开发者可根据目标平台选择灵活的渲染策略。

图片

本文所用Qt for OpenHarmony SDK,由SIG社区基于Qt5.15独立开发、长期维护的开源项目,非Qt官方版本:

社区项目地址:https://gitcode.com/openharmony-sig/qt

图片

环境搭建与配置

想要在OpenHarmony开源鸿蒙开发板上运行 Qt Quick 程序,首先要完成基础开发环境部署,整体分为两项前置准备工作:

接下来将完整讲解环境搭建步骤,并手把手创建可运行的 Qt Quick Demo 工程。

  • 安装DevEco Studio替换配套Full SDK

关于DevEco Studio安装、Full SDK 替换的详细流程,触觉智能此前已更新对应教程,欢迎大家关注触觉智能CSDN往期内容

  • 获取 Qt for OpenHarmony SDK

SDK下载链接:https://gitcode.com/openharmony-sig/qt/releases

重点注意版本匹配规则:本地OpenHarmony SDK的API 版本不能低于Qt SDK 要求的最低API 版本。完成后即可创建Qt Quick工程验证。

Qt Quick工程配置与配置

  • 创建工程

1、打开Deveco新建项目,选择Native C++类型的模板工程进行创建:

图片

说明:

修改工程名称,并根据实际情况选择工程最终需要运行的设备类型;

Bundle name为应用唯一标识需确保不和其它应用冲突;

Save location可自行选择工程路径;

Compatible SDK可根据设备的API版本号自行修改,主模块名称可自行修改;

2、修改为OpenHarmony工程

工程创建后,需要修改工程级 build-profile.json5 文件:

图片

点击“Sync Now”同步工程,在弹出的确认框中点击“Yes”完成设备类型切换。

  • Qt Quick工程配置

1、修改Native编译配置

找到模块(通常是entry)下的build-profile.json5文件,修改 externalNativeOptions:

arguments: 指定你的Qt SDK绝对路径(-DQT_PREFIX=你的SDK路径)

abiFilters: 指定设备架构(如["arm64-v8a"])

图片

2、拷贝依赖文件

拷贝ets文件:将Qt SDK目录下的openharmony/qtbase文件夹内所有内容,复制并替换到工程src/main/ets目录下。

3、拷贝平台插件:

将Qt SDK下的

 plugins/platforms/libplugins_platforms_qopenharmony.so 文件拷贝到 libs/arm64-v8a 目录下。

图片

4、拷贝qml资源:

● 将Qt SDK下的 qml目录内这几个文件,拷贝到 libs/arm64-v8a 目录下(库依赖)

● 将Qt SDK下的 qml目录内这几个文件,拷贝到 src/main/resources/resfile 目录下(资源文件)。

注意是resfile,不是rawfile,否则会出现应用闪退现象。

图片

5、配置UIAbility

确保module.json5文件中,EntryAbility的 "launchType" 设置为 "specified"(指定实例模式,适用于多窗口)。

module.json5文件配置UIAbility组件,这是应用的入口。“launchType”: "specified"表示该UIAbility为指定实例模式,若工程需要打开多个窗口时,应将launchType指定为specified。

{
  "module": {
    "name": "entry",
      "type": "entry",
      "srcEntry":"./ets/abilitystage/MyAbilityStage.ets" ,// 关键配置
      // ...
      "abilities": [
      {
        "name": "EntryAbility",
        "launchType": "specified", // 关键配置
        // ... 其他配置
      }
    ]
  }
}

  • Qt Quick Demo演示

完成全部工程配置后,即可开展Qt Quick界面开发,大家可参考触觉智能配套 Demo 查看实际运行效果:

https://www.bilibili.com/video/BV1zB7Y6TENz/?spm_id_from=333.1387

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐