Qt for OpenHarmony/zh: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(create the Chinese version of Qt for OpenHamony)
 
(translate the title and subtitle)
Line 5: Line 5:


=OpenHarmony 介绍=
=OpenHarmony 介绍=
OpenHarmony是OpenAtom基金会孵化并运营的开源项目,目标是构建智能终端设备操作系统的框架与平台,面向全场景、全连接、全智能时代,推动万物互联产业繁荣发展。
OpenHarmony是开放原子开源基金会孵化并运营的开源项目,目标是构建智能终端设备操作系统的框架与平台,面向全场景、全连接、全智能时代,推动万物互联产业繁荣发展。


[https://gitee.com/openharmony OpenHarmony 开源项目]
[https://gitee.com/openharmony OpenHarmony 开源项目]
Line 48: Line 48:


[[File:Git-address.png|874x874px]]
[[File:Git-address.png|874x874px]]
=在 macOS 中为 Qt for OpenHarmony 构建 Qt 库=
=在 macOS 中为 Qt for OpenHarmony 构建 Qt 库=
===Prepare for third-party dependencies===
===准备第三方依赖项===
Following instruction has been prepared based on macOS Sonoma 14.0.  Does not represent a minimum dependency condition.
Following instruction has been prepared based on macOS Sonoma 14.0.  Does not represent a minimum dependency condition.
*git version 2.39.3
*git version 2.39.3
*python 3.12.0
*python 3.12.0
===System environments===
===系统环境变量===
Open ''~/.zshrc'' or ''~/.bashrc'' and add the following:<syntaxhighlight lang="shell">
Open ''~/.zshrc'' or ''~/.bashrc'' and add the following:<syntaxhighlight lang="shell">
local HARMONY_OS_API_VER=12
local HARMONY_OS_API_VER=12
Line 62: Line 63:
export NATIVE_OHOS_SDK=${OHOS_SDK_12}/native
export NATIVE_OHOS_SDK=${OHOS_SDK_12}/native
</syntaxhighlight>
</syntaxhighlight>
===Building Qt sources===
===构建 Qt 源代码===
You can use below script to build Qt for arm64-v8a target.
You can use below script to build Qt for arm64-v8a target.


Line 106: Line 107:
</syntaxhighlight>
</syntaxhighlight>
=在 macOS 中为 OpenHarmony 构建 Qt 应用程序=
=在 macOS 中为 OpenHarmony 构建 Qt 应用程序=
===Creating development kit for OpenHarmony in Qt Creator===
===Qt Creator 中为 OpenHarmony 创建开发工具包===
Go to '''Preferences''' → '''Kits''' → '''Qt Versions'''. Click the button '''Add…'''.
Go to '''Preferences''' → '''Kits''' → '''Qt Versions'''. Click the button '''Add…'''.


[[File:Macos-qtversion-add.jpg|869x869px]]
[[File:Macos-qtversion-add.jpg|869x869px]]
===Configuring Qt Version===
===配置 Qt 版本===
Select the '''qmake''' file generated by compiling the Qt for OpenHarmony source code:
Select the '''qmake''' file generated by compiling the Qt for OpenHarmony source code:


[[File:Macos-oh-qmake.jpg|867x867px]]
[[File:Macos-oh-qmake.jpg|867x867px]]
===Configuring Compilers===
===配置 编译器===
Go to the Compilers tab. Click on the button Add, then select '''Custom''' → '''C'''.
Go to the Compilers tab. Click on the button Add, then select '''Custom''' → '''C'''.


Line 136: Line 137:


[[File:CppCompilers-filled.jpg|866x866px]]
[[File:CppCompilers-filled.jpg|866x866px]]
===Configuring Kits===
===配置套件===
Go to '''Kits''' tab.
Go to '''Kits''' tab.


Line 142: Line 143:


[[File:Kits.jpg|869x869px]]
[[File:Kits.jpg|869x869px]]
===Setting required environment variables in Qt Creator===
===Qt Creator 中设置所需的环境变量===
Go '''Preferences''' → '''Environment''' → '''System''' and click the '''Change…''' button in Environment section.
Go '''Preferences''' → '''Environment''' → '''System''' and click the '''Change…''' button in Environment section.


Line 151: Line 152:
[[File:Change-env.jpg|869x869px]]
[[File:Change-env.jpg|869x869px]]
=在 Windows 中为 OpenHarmony 构建 Qt 库=
=在 Windows 中为 OpenHarmony 构建 Qt 库=
===Preparing the Build Environment===
===准备构建环境===
*Clone qt5 repository from Gerrit using --recursive parameter to get also all submodules,[[Qt for OpenHarmony#How to get Qt for OpenHarmony source code]]:
*Clone qt5 repository from Gerrit using --recursive parameter to get also all submodules,[[Qt for OpenHarmony#How to get Qt for OpenHarmony source code]]:


Line 170: Line 171:
SET LLVM_INSTALL_DIR=%NATIVE_OHOS_SDK%\llvm
SET LLVM_INSTALL_DIR=%NATIVE_OHOS_SDK%\llvm
</syntaxhighlight></blockquote>
</syntaxhighlight></blockquote>
===Building===
===构建===
*With the same command prompt locate to your qt5 repository directory and create build directory parallel to that (Do NOT make the build
*With the same command prompt locate to your qt5 repository directory and create build directory parallel to that (Do NOT make the build
directory a subdirectory of the qt5 directory). Then Go to build directory, define a variable with skipped modules and run configure
directory a subdirectory of the qt5 directory). Then Go to build directory, define a variable with skipped modules and run configure
Line 192: Line 193:


Be aware that Qt5 build + multiple options, currently Arch is arm64-v8a.
Be aware that Qt5 build + multiple options, currently Arch is arm64-v8a.
===Preparing Qt Creator as a Qt IDE===
===准备 下载Qt Creator 作为 Qt 开发的IDE ===
Download Qt Creator,create a kit for OpenHarmony manually
Download Qt Creator,create a kit for OpenHarmony manually
===Creating development kit for OpenHarmony in Qt Creator===
===Qt Creator 中为 OpenHarmony 创建开发工具包===
Go to Edit →Preferences→Kits
Go to Edit →Preferences→Kits
===Configuring Qt Version===
===配置 Qt 版本===
Go to Qt Version tab. Click the button Add…[[File:Add kits.png|none|thumb|927x927px]]Go to the folder in which Qt 5.12.12 for OHOS was installed (it should be installed in a path specified with PREFIX), then go to the bin folder, and select the qmake application and click Open. For example, I compiled the Qt source code with PREFIX=C:\Qt\qt-5.12.12-ohos, so qmake will be in C:\Qt\qt-5.12.12-ohos\bin\qmake. Set Name to Qt %{Qt:Version} for OHOS. At this point, there should be information, that there are no compilers that can produce code for this Qt version.[[File:Add qt version.png|none|thumb|986x986px]]
Go to Qt Version tab. Click the button Add…[[File:Add kits.png|none|thumb|927x927px]]Go to the folder in which Qt 5.12.12 for OHOS was installed (it should be installed in a path specified with PREFIX), then go to the bin folder, and select the qmake application and click Open. For example, I compiled the Qt source code with PREFIX=C:\Qt\qt-5.12.12-ohos, so qmake will be in C:\Qt\qt-5.12.12-ohos\bin\qmake. Set Name to Qt %{Qt:Version} for OHOS. At this point, there should be information, that there are no compilers that can produce code for this Qt version.[[File:Add qt version.png|none|thumb|986x986px]]
===Configuring Compilers===
===配置编译器===
Go to the Compilers tab. Click on the button Add, then select Custom→C
Go to the Compilers tab. Click on the button Add, then select Custom→C


Line 208: Line 209:


Change the ABI to '''arm - linux - generic - elf - 64bit'''[[File:Add clang c.png|none|thumb|993x993px]]Follow the above steps for the c++ compiler. However, this time, make sure to set Name to OHOS Clang++ and in Compiler path select the clang++.exe instead.[[File:Add clang c++.png|none|thumb|994x994px]]
Change the ABI to '''arm - linux - generic - elf - 64bit'''[[File:Add clang c.png|none|thumb|993x993px]]Follow the above steps for the c++ compiler. However, this time, make sure to set Name to OHOS Clang++ and in Compiler path select the clang++.exe instead.[[File:Add clang c++.png|none|thumb|994x994px]]
===Configuring Kits===
===配置套件===
Go to Qt kits tab. Click the button Add…
Go to Qt kits tab. Click the button Add…


Line 222: Line 223:


[[File:Add ohos clang.png|frameless|991x991px]]
[[File:Add ohos clang.png|frameless|991x991px]]
===Setting required environment variables in Qt Creator===
===Qt Creator 中设置所需的环境变量===
Go to Edit→Preferences→Environment→System and click the Change…button in Environment section.
Go to Edit→Preferences→Environment→System and click the Change…button in Environment section.


Add a new environment variable by adding a line NATIVE_OHOS_SDK=D:\oh\DevEcoStudio\sdk\HarmonyOS-NEXT-DB6\openharmony\native[[File:Add environment.png|none|thumb|981x981px]]
Add a new environment variable by adding a line NATIVE_OHOS_SDK=D:\oh\DevEcoStudio\sdk\HarmonyOS-NEXT-DB6\openharmony\native[[File:Add environment.png|none|thumb|981x981px]]
===Obtaining a template DevEco project===
===获取模板 DevEco 项目===
Contact us to obtain a template DevEco project for building final OpenHarmony Qt applications. This will be used to run the Qt application on the OpenHarmony device.
Contact us to obtain a template DevEco project for building final OpenHarmony Qt applications. This will be used to run the Qt application on the OpenHarmony device.


Line 232: Line 233:


Go to folder<deveco-project>\entry and create a folder<deveco-project>\entry\libs\arm64-v8a
Go to folder<deveco-project>\entry and create a folder<deveco-project>\entry\libs\arm64-v8a
===Compiling a simple Qt project===
===编译一个简单的 Qt 项目===
To simplify this instruction, we will not create an application from scratch, instead we will use an existing example from widget.
To simplify this instruction, we will not create an application from scratch, instead we will use an existing example from widget.


Line 245: Line 246:
You should be able to find the compiled '''libcalculator.so''' file inside the Documents\qt_creators_projects\build-calculator-OHOS_Clang-Debug folder.
You should be able to find the compiled '''libcalculator.so''' file inside the Documents\qt_creators_projects\build-calculator-OHOS_Clang-Debug folder.
=在硬件上运行 Qt for OpenHamony 应用程序=
=在硬件上运行 Qt for OpenHamony 应用程序=
===Building the final OHOS application===
===构建最终的 OHOS 应用程序===
Copy the libcalculator.so file from the previous step into your<deveco-project>\entry\libs\arm64-v8a folder
Copy the libcalculator.so file from the previous step into your<deveco-project>\entry\libs\arm64-v8a folder


Line 253: Line 254:
Copy-Item "<qt-install-path>\lib\libQt5Widgets.so" -Destination "<deveco-project>\entry\libs\arm64-v8a\"
Copy-Item "<qt-install-path>\lib\libQt5Widgets.so" -Destination "<deveco-project>\entry\libs\arm64-v8a\"
</syntaxhighlight>Similarly, you can find all dependencies of the OHOS qpa plugin, to make sure, you have all necessary libraries.
</syntaxhighlight>Similarly, you can find all dependencies of the OHOS qpa plugin, to make sure, you have all necessary libraries.
===Modifying the starting point in ets part===
===修改 ets 中的初始加载===
Once all libraries are copied, we can modify the eTS source code,
Once all libraries are copied, we can modify the eTS source code,


Open the <deveco-project> in DevEco:[[File:Open template app.png|none|thumb|668x668px]]Open file <deveco-project>\entry\src\main\ets\qabilitystage\QAbilitystage.ts. Change the qtApplicationName variable to the name of our library( libcalculator.so ):[[File:Edit EntryAbility.ts.png|none|thumb|1073x1073px]]
Open the <deveco-project> in DevEco:[[File:Open template app.png|none|thumb|668x668px]]Open file <deveco-project>\entry\src\main\ets\qabilitystage\QAbilitystage.ts. Change the qtApplicationName variable to the name of our library( libcalculator.so ):[[File:Edit EntryAbility.ts.png|none|thumb|1073x1073px]]
===Build and run the application===
===构建并运行应用程序===
Make sure the device is connected. Once it is connected, it should be visible in DevEco Studio[[File:Device .png|none|thumb|901x901px]]Then adding the signing configs,open '''file--project structure--signing configs''',check all the items,and click the OK.[[File:Tempsnip.png|none|thumb|900x900px]]Once the device is selected in DevEco Studio,you can build and run the application directly:[[File:Run app.png|none|thumb|1500x1500px]]After '''BUILD SUCCESSFUL,''' you can see the  the application is running on the target device.
Make sure the device is connected. Once it is connected, it should be visible in DevEco Studio[[File:Device .png|none|thumb|901x901px]]Then adding the signing configs,open '''file--project structure--signing configs''',check all the items,and click the OK.[[File:Tempsnip.png|none|thumb|900x900px]]Once the device is selected in DevEco Studio,you can build and run the application directly:[[File:Run app.png|none|thumb|1500x1500px]]After '''BUILD SUCCESSFUL,''' you can see the  the application is running on the target device.

Revision as of 09:40, 28 October 2024


中文 English

OpenHarmony 介绍

OpenHarmony是开放原子开源基金会孵化并运营的开源项目,目标是构建智能终端设备操作系统的框架与平台,面向全场景、全连接、全智能时代,推动万物互联产业繁荣发展。

OpenHarmony 开源项目

HUAWEI DevEco Studio 安装

如果您想开发Qt for OpenHarmony应用程序,除了使用Qt Creator之外,还需要依赖DevEco Studio。

https://developer.huawei.com/consumer/cn/deveco-studio/

一般情况下,不需要配置DevEco Studio使用的sdk版本,因为DevEco Studio默认自带了一个sdk。

但是如果包含的sdk不能满足你的需求,你可以通过下面的方法设置你想要使用的sdk版本:

对于 OpenHarmony 5,您需要安装 API 版本 12 SDK:

DevEco_Studio_Preferences

为了避免因开发环境导致的任何问题,请首先确认是否可以使用 DevEco Studio 开发 Arkts 应用程序。

Gerrit 简介

Qt 源代码托管在 Gerrit 上,用于代码审查和版本控制。有关如何使用 Gerrit 的所有必要信息都写在以下页面上:

如何获取 Qt for OpenHarmony 源代码

  1. 访问并登录: https://codereview.qt-project.org.
  2. 点击右上角的“设置”,打开设置页面。
  3. 点击“设置”->“HTTP 凭证”->“生成新密码”生成新密码。保存密码以便稍后使用“git clone”使用。
  4. 访问 https://codereview.qt-project.org/admin/repos/qt/tqtc-qt5, 并克隆git 仓库地址。
  5. cd tqtc-qt5
  6. git checkout tqtc/harmonyos-5.12.12 or git checkout tqtc/harmonyos-5.15.16
  7. 更新子模块:git submodule update --init --recursive
Codereview-settings.png


GENERATE-NEW-PASSWORD.png





Git-address.png

在 macOS 中为 Qt for OpenHarmony 构建 Qt 库

准备第三方依赖项

Following instruction has been prepared based on macOS Sonoma 14.0. Does not represent a minimum dependency condition.

  • git version 2.39.3
  • python 3.12.0

系统环境变量

Open ~/.zshrc or ~/.bashrc and add the following:

local HARMONY_OS_API_VER=12
local HOME_LIBRARY=${HOME}/Library
export OHOS_SDK_ROOT=${HOME_LIBRARY}/OpenHarmony/Sdk
export HOS_SDK_HOME=${HOME_LIBRARY}/OpenHarmony/Sdk
export OHOS_SDK_12=${HOS_SDK_HOME}/${HARMONY_OS_API_VER}
export NATIVE_OHOS_SDK=${OHOS_SDK_12}/native

构建 Qt 源代码

You can use below script to build Qt for arm64-v8a target.

Please fill-in path to your local source directory.

#!/bin/sh

# Target architecure
ARCH="arm64-v8a"

# Source and build directories
QT5_ROOT_DIR=<ENTER PATH TO YOUR qt/qt5 DIRECORY>
QT5_BUILD_DIR="$QT5_ROOT_DIR/build_${ARCH}"

# Prepare build directory
mkdir "$QT5_BUILD_DIR"
cd "$QT5_BUILD_DIR"

../configure \
    -v \
    -xplatform ohos-clang \
    -prefix ${NATIVE_OHOS_SDK}/opt/Qt/5.12.12/ohos-${ARCH}-clang/ \
    -opensource \
    -confirm-license \
    -release \
    -no-use-gold-linker \
    -no-gcc-sysroot \
    -ohos-arch ${ARCH} \
    -opengles3 \
    -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcanvas3d -skip qtcharts \
    -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtdocgallery -skip qtfeedback \
    -skip qtgamepad -skip qtgraphicaleffects -skip qtlocation -skip qtmacextras -skip qtnetworkauth \
    -skip qtpim -skip qtpurchasing -skip qtqa -skip qtremoteobjects -skip qtrepotools \
    -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport \
    -skip qtspeech -skip qtsystems -skip qttools -skip qttranslations -skip qtvirtualkeyboard \
    -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebglplugin -skip qtwebsockets \
    -skip qtwebview -skip qtwinextras -skip qtx11extras -skip qtxmlpatterns -skip doc \
    -no-dbus \
    -c++std c++14 \
    -make tests

then,

make -j16
make install

在 macOS 中为 OpenHarmony 构建 Qt 应用程序

在 Qt Creator 中为 OpenHarmony 创建开发工具包

Go to PreferencesKitsQt Versions. Click the button Add….

Macos-qtversion-add.jpg

配置 Qt 版本

Select the qmake file generated by compiling the Qt for OpenHarmony source code:

Macos-oh-qmake.jpg

配置 编译器

Go to the Compilers tab. Click on the button Add, then select CustomC.

Oh-compile-c

Set:

Name: OHOS Clang

Compiler path: /path/to/OpenHarmony/Sdk/12/native/llvm/bin/clang

Make Path: /usr/bin/make

ABI: arm - linux - generic - elf - 64bit

Compilers-filled.jpg

Follow the above steps for the C++ compiler. However, this time, make sure to set Name to OHOS Clang++ and in Compiler path select the

clang++ instead.

CppCompilers-filled.jpg

配置套件

Go to Kits tab.

Click the Add button.

Kits.jpg

在 Qt Creator 中设置所需的环境变量

Go PreferencesEnvironmentSystem and click the Change… button in Environment section.

Add a new environment variable by adding a line:

NATIVE_OHOS_SDK=/path/to/OpenHarmony/Sdk/12/native

Change-env.jpg

在 Windows 中为 OpenHarmony 构建 Qt 库

准备构建环境

  • Download MinGW toolchain

    For example llvm-mingw-20230919-ucrt-x86_64.zip from Releases · mstorsjo/llvm-mingw Unzip and copy folder for example to d:\

  • Install Perl

    Strawberry Perl for Windows

  • Add MinGW and Perl paths to PATH environment variable as shown below:

    Add environment variable.png

  • Add also MINGW_ROOT and PERL_ROOT environment variables as shown below:

    Add root for environment.png

  • Open command prompt (cmd.exe was used) and set following environment variables:
    REM set NATIVE_OHOS_SDK 
    SET NATIVE_OHOS_SDK=D:\oh\DevEcoStudio\sdk\HarmonyOS-NEXT-DB6\openharmony\native
    
    REM set OHOS_SDK_SYSROOT 
    SET OHOS_SDK_SYSROOT=%NATIVE_OHOS_SDK%\sysroot
    
    REM set LLVM_INSTALL_DIR 
    SET LLVM_INSTALL_DIR=%NATIVE_OHOS_SDK%\llvm
    

构建

  • With the same command prompt locate to your qt5 repository directory and create build directory parallel to that (Do NOT make the build

directory a subdirectory of the qt5 directory). Then Go to build directory, define a variable with skipped modules and run configure

command:

REM set QT_SKIPS 
SET QT_SKIPS=-skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcanvas3d -skip qtcharts -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtdocgallery -skip qtfeedback -skip qtgamepad -skip qtgraphicaleffects -skip qtlocation -skip qtmacextras -skip qtnetworkauth -skip qtpim -skip qtpurchasing -skip qtqa -skip qtremoteobjects -skip qtrepotools -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qtsystems -skip qttools -skip qttranslations -skip qtvirtualkeyboard -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebglplugin -skip qtwebsockets -skip qtwebview -skip qtwinextras -skip qtx11extras -skip qtxmlpatterns -no-dbus -skip doc
REM  configure command
call ..\tqtc-qt5\configure.bat -v -xplatform ohos-clang -device-option CROSS_COMPILE=%LLVM_INSTALL_DIR%\bin -prefix c:\Qt\qt-5.12.12-ohos -opensource -confirm-license -debug -no-use-gold-linker %QT_SKIPS% -nomake tests -nomake examples -no-gcc-sysroot -opengles3 -c++std c++14 -ohos-arch arm64-v8a
  • After configure is finished successfully you can start building with mingw32-make:
    REM build mingw32-make
    mingw32-make -j8
    
  • After successful build you can start installing with following command:
    mingw32-make install
    

在 Windows 中为 OpenHarmony 构建 Qt 应用程序

The following parts of the instruction, that you have installed DevEco studio, OpenHarmony toolchains,already have the device of OpenHarmonyOS.

Be aware that Qt5 build + multiple options, currently Arch is arm64-v8a.

准备 下载Qt Creator 作为 Qt 开发的IDE

Download Qt Creator,create a kit for OpenHarmony manually

在 Qt Creator 中为 OpenHarmony 创建开发工具包

Go to Edit →Preferences→Kits

配置 Qt 版本

Go to Qt Version tab. Click the button Add…

Add kits.png

Go to the folder in which Qt 5.12.12 for OHOS was installed (it should be installed in a path specified with PREFIX), then go to the bin folder, and select the qmake application and click Open. For example, I compiled the Qt source code with PREFIX=C:\Qt\qt-5.12.12-ohos, so qmake will be in C:\Qt\qt-5.12.12-ohos\bin\qmake. Set Name to Qt %{Qt:Version} for OHOS. At this point, there should be information, that there are no compilers that can produce code for this Qt version.

Add qt version.png

配置编译器

Go to the Compilers tab. Click on the button Add, then select Custom→C

Set Name to OHOS Clang.

Assuming you have followed the instruction to build Qt 5.12.12 for OHOS from sources, you should have llvm-mingw already installed. If not, please follow the MinGW toolchain installation stepQt for OpenHarmony#Preparing the Build Environment

Set the Make path to mingw32-make.exe executable shipped with your MinGW toolchain. It should be located in <path-to-MinGW-toolchain>\bin\mingw32-make.exe. Do not forget to substitute <path-to-MinGW-toolchain>with the actual path.

Change the ABI to arm - linux - generic - elf - 64bit

Add clang c.png

Follow the above steps for the c++ compiler. However, this time, make sure to set Name to OHOS Clang++ and in Compiler path select the clang++.exe instead.

Add clang c++.png

配置套件

Go to Qt kits tab. Click the button Add…

Set Name to OHOS Clang

Set Sysroot to D:\oh\DevEcoStudio\sdk\HarmonyOS-NEXT-DB6\openharmony\native\sysroot. In Compiler section, select previously configured compilers for C(OHOS Clang) and C++(OHOS Clang++).

In Qt version select previously configured Qt 5.12.12 for OHOS.

Set Qt mkspec to ohos-clang.

The complete Kit should look like this:

Add ohos clang.png

在 Qt Creator 中设置所需的环境变量

Go to Edit→Preferences→Environment→System and click the Change…button in Environment section.

Add a new environment variable by adding a line NATIVE_OHOS_SDK=D:\oh\DevEcoStudio\sdk\HarmonyOS-NEXT-DB6\openharmony\native

Add environment.png

获取模板 DevEco 项目

Contact us to obtain a template DevEco project for building final OpenHarmony Qt applications. This will be used to run the Qt application on the OpenHarmony device.

Put the template DevEco project into a known location. Let’s call it <deveco-project>

Go to folder<deveco-project>\entry and create a folder<deveco-project>\entry\libs\arm64-v8a

编译一个简单的 Qt 项目

To simplify this instruction, we will not create an application from scratch, instead we will use an existing example from widget.

Go to your Documents folder and create a new folder called qt_creator_projects. Then go to<qt5-root>\examples\widgets\widgets folder in explorer and copy the whole calculator folder into the qt_creator_projects folder

Then, in QtCreator, click on FileOpen File or Project, then go to the qt_creator_projects\calculator and select the calculator.profile.

In Configure Project tab select the OHOS Clang kit and click the Configure Project button.

Trigger the compilation by clicking on BuildBuild Project “calculator”, or use shortcut: Ctrl+B. The project should compile without errors.

You should be able to find the compiled libcalculator.so file inside the Documents\qt_creators_projects\build-calculator-OHOS_Clang-Debug folder.

在硬件上运行 Qt for OpenHamony 应用程序

构建最终的 OHOS 应用程序

Copy the libcalculator.so file from the previous step into your<deveco-project>\entry\libs\arm64-v8a folder

Then copy the needed library from <qt-install-path>\lib\ to <deveco-project>\entry\lib\arm64-v8a\

For example, for libQt5Widgets.so library it will be (Powershell):

Copy-Item "<qt-install-path>\lib\libQt5Widgets.so" -Destination "<deveco-project>\entry\libs\arm64-v8a\"

Similarly, you can find all dependencies of the OHOS qpa plugin, to make sure, you have all necessary libraries.

修改 ets 中的初始加载

Once all libraries are copied, we can modify the eTS source code,

Open the <deveco-project> in DevEco:

Open template app.png

Open file <deveco-project>\entry\src\main\ets\qabilitystage\QAbilitystage.ts. Change the qtApplicationName variable to the name of our library( libcalculator.so ):

Edit EntryAbility.ts.png

构建并运行应用程序

Make sure the device is connected. Once it is connected, it should be visible in DevEco Studio

Device .png

Then adding the signing configs,open file--project structure--signing configs,check all the items,and click the OK.

Tempsnip.png

Once the device is selected in DevEco Studio,you can build and run the application directly:

Run app.png

After BUILD SUCCESSFUL, you can see the the application is running on the target device.