deepin 宣布 deepin DTK 已完成基于 Qt6 的全面升级


多元共进|2023 Google 开发者大会精彩演讲回顾

近日,深度 deepin 宣布 deepin DTK(Development ToolKit)已正式适配 Qt6(6.4.2),实现全面升级。

DTK 作为 deepin 基于 Qt 开发的一整套简单且实用的通用开发框架,处于 deepin 操作系统中的核心位置,此次成功适配意味着 deepin 操作系统后续将充分利用 Qt6 版本的新特性及新功能,在最大程度上为用户提供更先进、更高效的体验。

为什么要适配 Qt6

自 deepin 诞生以来,deepin 桌面操作系统就以简洁、直观和美观的外观,以及独特的操作方式引起了广泛关注。DTK 作为 deepin 操作系统的核心工具开发组件,不仅为用户提供了丰富的控件,而且具有强大的定制能力和高度可扩展性,为 deepin 桌面操作系统注入了独特的个性与魅力。因此,deepin 团队一直关注着 Qt 的变化。

Qt6 作为我们正在使用的开发工具包(SDK)的最新版本,不仅是 Qt5 版本的升级,更是一次从头开始的全面革新,不但加强了跨平台兼容性、改进了性能,同时引入了诸多新的功能及工具,如更强大的图形渲染、多线程支持等。

考虑到 Qt6 将成为未来几年中的主要版本,为确保应用程序在未来的发展中与最新技术保持同步,我们在 deepin V23 Beta 版本中,完成了 DTK 对 Qt6(6.4.2) 的适配。

在此次适配 Qt6 后,开发者可直接在基于 Qt6 开发的项目上接入 DTK,无需单独对 Qt5 & DTK 进行二次适配,极大地减少了开发资源的重复和浪费。已在使用 Qt6 进行开发的应用也可以接入 DTK 框架进行深入开发更符合 DDE 样式的程序,兼顾性能的同时,美观依然在线。

适配问题及处理

  • API 变动

Qt6 对一些 API 进行了重大改动和调整,导致一些原有的代码需要进行修改和适配。于是我们对代码进行全面分析和重构,以确保其在 Qt6 和 Qt5 中的兼容性。

  • 存在的功能缺失

在 Qt6 中,由于技术和架构的变化,某些 Qt5 中存在的功能可能被删除、替代或者(暂时)禁用。这意味着我们需要找到替代的方式来实现相同的功能,或者重新设计和开发相关功能。

  • 第三方库和插件兼容性

Qt5 常常与其他第三方库和插件进行集成,但是这些库和插件可能并不完全兼容 Qt6。所以我们在适配 Qt6 时,对这些集成进行了评估和测试,并进行必要的修改和调整。如 qtxdg/QGSettings 还未完全适配 Qt6,因此在 Qt6 编译时暂时禁用 libqtxdg/QGSettings 相关代码。

  • 依赖项的更新

Qt6 通常会升级依赖的一些外部库和工具链,为满足 Qt6 的要求。于是我们主意升级和适配这些依赖项。

  • DTK6 的打包和版本管理的实现

在 DTK 适配完 Qt6 后,考虑到可维护性,我们并没有采用创建新分支的方式管理 DTK5 和 DTK6,二者使用同一套代码,DTK5 和 DTK6 将共存于系统中。

  • 接口适配

对于 Qt5 中已经标注废弃但还在用的接口,在适配 Qt6 时,我们直接将其删除,并使用可用的接口替换。对于一些不稳定的接口,如通过某些技术获取的一些 Qt 私有接口甚至私有变量,我们则通过对比 Qt5 和 Qt6 版本的源代码,根据功能逻辑找到变化后的接口,尽量使用 Qt6 公开的接口对其进行替换。

成果及未来规划

整个 Qt6 的适配过程中,总计有 1000+(1609)文件变动,代码新增 20000+ 行数,代码移除 10000+ 行数。

截至目前, deepin DTK 已完成 5 个版本迭代,100+ 次更新,累计提交代码近 20 万行,已被迁移至超过 10 个 Linux 发行版。

未来,我们也将与最新技术保持同步,进一步提升应用程序的稳定性。我们衷心希望这次适配能够为开发者和用户带来更先进、更高效的体验,也期待更多感兴趣的朋友加入我们,讨论更多内容,为推动生态发展贡献力量。

  • deepin-qt SIG组入口:

https://github.com/deepin-community/sig-deepin-qt/issues

  • DTK项目入口:

https://github.com/linuxdeepin/dtk


相關推薦

2022-12-09

,开发并集成了大量实用功能。 镜像下载:https://cdimage.deepin.com/releases/20.8/deepin-desktop-community-20.8-amd64.iso 下面介绍一下新版本的功能: 深度之家 新增社区自研信息聚合型应用“深度之家”,V1.0.0 阶段实现了对社区GitHub、Wi

2023-08-12

Deepin 开发团队宣布,自适配 VisionFive 1、VisionFive 2 、SG2042 等开发板之后,deepin RISC-V SIG 近期在推动 RISC-V 生态过程中又取得了新突破:deepin 操作系统成功适配 LicheePi 4A 开发板。 根据介绍,LicheePi 4A 是矽速科技设计的一款采用 T

2023-07-16

deepin 开发团队宣布,在已经发布的 deepin V23 beta 版本中,现已正式适配 WSL。 WSL是Windows Subsystem for Linux的缩写,它是一种可以让用户在Windows上运行Linux的技术。WSL让你能够在Windows和Linux之间自由切换或集成,使用开源的工具和

2023-09-20

deepin V23 Beta2 昨天(2023年9月18日)发布了。 发布公告写道,deepin V23 Beta2 对上一版本存在的问题进行了修复,修复问题单450+,并进一步优化功能体验,包括新内核电源续航提升30%、采用白盒方案优化秘钥环弹窗问题、优化版深

2023-03-15

近日,deepin RISC-V SIG 组在博客中宣布在 RISC-V 服务器板卡“算能 SG2042 ”上成功适配 deepin 操作系统。作为具有64核心2.0GHz运行频率的服务器板卡,算能 SG2042 是一款拥有64MB的L3共享缓存的高性能RISC-V处理器。此次成功适配是deepin f

2023-10-26

deepin 社区宣布 deepin WSL 已正式上架微软商店。 WSL 是 Windows Subsystem for Linux 的缩写,它是一种可以让用户在 Windows 上运行 Linux 的技术。使用 WSL,可以轻松地在 Windows 和 Linux 之间切换和集成,使用开源的工具和环境来开发或

2023-11-25

deepin 宣布,在社区爱好者以及 deepin 研发团队的推动下,完成了摩尔线程 MTT S80 显卡的适配工作,成功在 deepin V23 Beta2 版本上驱动 MTT S80 显卡。 据悉,此次适配的摩尔线程 MTT S80 显卡,于 2022 年 11 月发布,搭载了完整的“春晓

2022-08-17

deepin 23 Preview 已正式发布,预览版属于 V23 阶段性版本,囊括三大核心特性: 独立上游,构建全新的仓库 原子更新 自研包格式 注意,此次发布版本暂不支持 V20 跨版本升级。 玲珑 deepin自研软件包格式,致力于治理

2023-09-05

deepin 社区正式官宣 deepin-IDE(深度集成开发环境)——由深度公司自主研发,具有多语言、跨平台兼容特性的轻量级集成开发环境。 功能介绍 deepin-IDE 除了包含 IDE 常用功能,如智能编辑器、高度可扩展的命令系统、工程

2022-05-19

创无限”——打造立足中国面向全球的桌面系统根社区 deepin 线上发布会成功举办。 会上,统信软件宣布,将以深度(deepin)社区为基础,建设立足中国、面向全球的桌面操作系统根社区,打造中国桌面操作系统的根系统。资

2022-10-19

深度操作系统 deepin 20.7.1 已发布。公告称此版本进一步提升用户体验,增加 NVIDIA 驱动预装功能、 修复系统漏洞 、部分功能更新适用于 700+ 机型,全面提升了系统使用的稳定性、流畅性及兼容性。 增加NVIDIA驱动预装功能 增

2022-08-02

将在8月发布2022年跨越上游、跨端协同的全新版本 —— deepin 23 Preview。 据称,即将发布的deepin 23 预览版将是跨越上游Debian社区基于根社区理念打造的一款根操作系统,是集合社区开源力量、蕴含大量创新技术的全新一代操作

2023-09-22

据技术都能四世同堂,凭什么开发 30 岁就要被干掉? deepin 正式官宣已实现大模型能力接入,多款自研应用软件实现智能化升级。 统信软件高级副总经理、CTO张磊表示:“目前UOS AI实现了国内外主流大模型的能力接入,并封

2023-06-30

deepin 宣布,其官方 RISC-V SIG 组成功在 VisionFive 2 开发板上适配 deepin 操作系统,目前已经在官网发布可用镜像,这是 deepin 操作系统在 RISC-V 适配工作的又一新成果。 昉·星光 2 (VisionFive 2) 是全球首款集成 3D GPU 的高性能量产 RIS