2026/1/18 7:52:35
网站建设
项目流程
做网站建设业务,员工培训内容,汽车服务网站建设方案,深圳做服装设计网站的公司背景与概述
Notepad-- 是一个功能强大的开源文本编辑器#xff0c;支持多种编程语言的语法高亮、插件扩展等功能。随着OpenHarmony生态向PC端扩展#xff0c;将Notepad–移植到OpenHarmony PC环境上#xff0c;不仅能够丰富鸿蒙生态的应用种类#xff0c;还能为开发者提供…背景与概述Notepad-- 是一个功能强大的开源文本编辑器支持多种编程语言的语法高亮、插件扩展等功能。随着OpenHarmony生态向PC端扩展将Notepad–移植到OpenHarmony PC环境上不仅能够丰富鸿蒙生态的应用种类还能为开发者提供一个实用的桌面级文本编辑工具。本文将详细介绍如何在OpenHarmony PC环境下移植Notepad–。Notepad–NDD的开源地址https://gitcode.com/GitHub_Trending/no/notepad–请注意本文使用的Qt for OpenHarmony SDK由OpenHarmony SIG社区基于Qt 5.15独立开发和维护非Qt官方版本。社区项目地址https://gitcode.com/openharmony-sig/qtSDK下载链接https://gitcode.com/openharmony-sig/qt/releasesNotepad–在OpenHarmony PC端的优势Notepad–作为一款成熟的开源文本编辑器其丰富的功能和强大的可扩展性非常适合移植到OpenHarmony PC平台。通过移植Notepad–将能够充分利用Qt WidgetsNotepad–主要基于Qt Widgets模块可以无缝适应OpenHarmony PC的桌面环境。语法高亮和插件支持支持多种编程语言的语法高亮和动态插件加载提高开发效率。跨平台一致性保持与原版Notepad–一致的用户界面和功能减少学习成本。环境搭建与配置文档适用范围OpenHarmony API 15 (5.0.3) 及以上版本Qt for OpenHarmony (基于 Qt 5.15)DevEco Studio 5.0.5 及以上版本前置条件安装DevEco Studio 5.0.5及以上版本下载并配置Qt for OpenHarmony SDK了解OpenHarmony应用开发基础1. DevEco Studio下载与安装官方下载地址DevEco Studio官网注意事项推荐使用最新稳定版本以获得最佳兼容性。历史版本可能不支持最新的OpenHarmony API可通过官网指定页面获取。具体安装步骤请参考鸿蒙官方安装教程。2. Qt SDK下载与配置本文假设您已完成基础环境搭建包括安装DevEco Studio 5.0.5及以上版本下载并配置Qt for OpenHarmony SDK了解OpenHarmony应用开发基础如未完成请参考前文《QT开发鸿蒙移动应用环境搭建及第一个HelloWorld程序》中的环境搭建部分。下载与准备Notepad–源码下载Notepad–源码从Notepad–的官方仓库下载源码。GitCode地址: Notepad-- GitCode解压源码将下载的源码包解压到一个工作目录例如~/Projects/notepadqq。创建OpenHarmony工程1. 新建OpenHarmony工程打开DevEco Studio选择Create Project。选择Native C模板。配置工程信息Project Name:NotePad--Bundle Name:com.example.notepadqqSaveLocation: 工程保存路径如~/Projects/notepadqqCompile SDK: 选择API 17或更高版本Model: 选择StageDevice Type: 选择Tablet或“2in1”2. 修改为OpenHarmony工程修改工程级build-profile.json5文件products:[{name:default,signingConfig:default,compileSdkVersion:17,targetSdkVersion:17,compatibleSdkVersion:17,// ... 其他配置}]点击Sync Now同步工程。3. 工程配置调整3.1 修改Native编译配置在模块级build-profile.json5中配置Qt SDK路径和架构externalNativeOptions:{path:./src/main/cpp/CMakeLists.txt,arguments:-DQT_PREFIX/path/to/your/QtForOpenHarmony,abiFilters:[arm64-v8a]// PC设备通常使用64位ARM或x86架构}注意根据实际PC设备架构调整abiFilters可能为[arm64-v8a]或[x86_64]。3.2 拷贝依赖文件拷贝ets文件将Qt SDK下的openharmony/qtbase目录内容复制到src/main/ets目录。拷贝库文件将Qt SDK下的plugins/platforms/libplugins_platforms_qopenharmony.so拷贝到libs/arm64-v8a目录下。拷贝开源项目代码将notepadd–的开源代码放置在如下目录中。3.3 配置UIAbility在module.json5中配置PC应用入口{module:{name:entry,type:entry,srcEntry:./ets/abilitystage/MyAbilityStage.ets,// 关键配置// ...abilities:[{name:EntryAbility,launchType:specified,// 关键配置// ... 其他配置}]}}修改和配置CMakeLists.txt1. 修改CMakeLists.txt文件将how_build目录下的目录下CMakeLists.txt文件拷贝出来文件内容如下针对鸿蒙PC的编译做些修改cmake_minimum_required(VERSION 3.16) project(Notepad-- VERSION 1.22.0) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTORCC ON) list(APPEND CMAKE_FIND_ROOT_PATH ${QT_PREFIX}) find_package(QT NAMES Qt5 Qt6 REQUIRED COMPONENTS Core Widgets) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui Widgets Concurrent Network PrintSupport XmlPatterns) # qscint 关键依赖库 add_subdirectory(${PROJECT_SOURCE_DIR}/src/qscint) # 插件库包含 # helloworld 动态插件库 add_subdirectory(${PROJECT_SOURCE_DIR}/src/plugin/helloworld) # win下需要开启UNICODE进行支持TCHAR if(CMAKE_HOST_WIN32) add_definitions(-D_UNICODE -DUNICODE) endif() if(${PLUGIN_EN}) if(${PLUGIN_EN} STREQUAL on) add_definitions(-DNO_PLUGIN1) endif(${PLUGIN_EN}) endif() file(GLOB UI_SRC ${PROJECT_SOURCE_DIR}/src/*.ui) set(UI_SRC ${UI_SRC} ${PROJECT_SOURCE_DIR}/src/cceditor/ccnotepad.ui) aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC) aux_source_directory(${PROJECT_SOURCE_DIR}/src/cceditor SRC) if(CMAKE_HOST_WIN32) add_executable(${PROJECT_NAME} WIN32 ${SRC} ${UI_SRC} ${PROJECT_SOURCE_DIR}/src/RealCompare.qrc) else() add_library(${PROJECT_NAME} SHARED ${SRC} ${UI_SRC} ${PROJECT_SOURCE_DIR}/src/RealCompare.qrc) endif() target_include_directories(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src ${PROJECT_SOURCE_DIR}/src/cceditor ${PROJECT_SOURCE_DIR}/src/qscint/src ${PROJECT_SOURCE_DIR}/src/qscint/src/Qsci ${PROJECT_SOURCE_DIR}/src/qscint/scintilla/src ${PROJECT_SOURCE_DIR}/src/qscint/scintilla/include ${PROJECT_SOURCE_DIR}/src/qscint/scintilla/lexlib ${PROJECT_SOURCE_DIR}/src/qscint/scintilla/boostregex ) target_link_libraries(${PROJECT_NAME} PRIVATE qscint Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Concurrent Qt${QT_VERSION_MAJOR}::Network Qt${QT_VERSION_MAJOR}::PrintSupport Qt${QT_VERSION_MAJOR}::XmlPatterns # 链接鸿蒙平台插件 ${QT_PREFIX}/plugins/platforms/libplugins_platforms_qopenharmony.so ) if(CMAKE_HOST_UNIX) install( TARGETS ${PROJECT_NAME} DESTINATION bin ) install(DIRECTORY ${PROJECT_SOURCE_DIR}/src/linux/usr DESTINATION /) include(${PROJECT_SOURCE_DIR}/cmake/deb_package_config.cmake) include(CPack) elseif(CMAKE_HOST_WIN32) install(TARGETS ${PROJECT_NAME} DESTINATION /) install(DIRECTORY ${PROJECT_SOURCE_DIR}/build/bin/ DESTINATION /) # 设置软件版本 set(CPACK_PACKAGE_NAME NotePad--) set(CPACK_PACKAGE_DESCRIPTION NotePad--) set(CPACK_PACKAGE_COPYRIGHT Copyright (c) 2023) set(CPACK_PACKAGE_VERSION 1.22.0) set(CPACK_PACKAGE_VERSION_MAJOR 1) set(CPACK_PACKAGE_VERSION_MINOR 22) set(CPACK_PACKAGE_VERSION_PATCH 0) include(${PROJECT_SOURCE_DIR}/cmake/nsis_package_config.cmake) include(CPack) endif()2. 配置依赖库确保所有依赖库已正确添加到项目中特别是qscint和helloworld插件库。这些库可以通过add_subdirectory指令集成到项目中。3. 定义平台特定配置根据不同的开发平台Windows 和 Mac定义相应的编译选项和资源文件。例如在Windows平台上开启UNICODE支持在Unix平台上指定安装路径。构建与运行1. 构建应用在DevEco Studio中点击Build → “Build HAP(s)”等待构建完成确保无编译错误2. 运行应用由于目前鸿蒙PC模拟器可能尚未普及建议在真实PC设备上运行。真实PC设备准备已刷入OpenHarmony PC版的设备通过USB连接设备在DevEco Studio中选择目标设备点击运行按钮应用将自动安装并启动远程调试配置PC设备的远程调试选项在DevEco Studio中配置远程连接部署并运行应用3. 应用效果应用启动后将显示一个标准的桌面窗口包含标题栏可最小化/最大化/关闭中央内容区域文本编辑框底部状态栏完整的菜单栏、工具栏可根据需要添加1. 常见问题解决库文件缺失确保所有依赖库已正确拷贝到libs目录架构不匹配确认设备架构与abiFilters配置一致权限问题在module.json5中申请必要的PC应用权限2. 性能优化建议懒加载控件大型应用可考虑动态加载UI组件资源管理合理管理图片、字体等资源事件处理优化耗时操作避免阻塞UI线程未来展望Notepad–在OpenHarmony PC平台的应用开发具有重要价值企业级应用迁移大量现有Qt桌面应用可平滑迁移至OpenHarmony PC生产力工具开发利用Qt Widgets丰富控件库开发办公、设计等专业软件混合开发模式结合Qt Quick和Qt Widgets兼顾传统界面与现代UI需求生态建设推动OpenHarmony PC应用生态的快速成熟随着OpenHarmony PC生态的完善Notepad–将成为连接传统桌面应用与新一代操作系统的重要桥梁为开发者提供高效、可靠的PC应用开发解决方案。