服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 深度操作系统 Deepin 宣布 DTK 开发框架已完成基于 Qt6 的全面升级

深度操作系统 Deepin 宣布 DTK 开发框架已完成基于 Qt6 的全面升级

2023-09-14 17:10未知服务器之家 Linux

9 月 13 日消息,据深度操作系统 deepin 新闻中心显示, deepin DTK(DevelopmentToolKit)近日已正式适配 Qt6 (6.4.2),实现全面升级 。 ▲ 图源 深度操作系统 deepin 新闻中心 官方表示,DTK 作为 deepin 基于 Qt 开发的一整套通用开发框架,处于

深度操作系统 Deepin 宣布 DTK 开发框架已完成基于 Qt6 的全面升级

9 月 13 日消息,据深度操作系统 deepin 新闻中心显示,deepin DTK(DevelopmentToolKit)近日已正式适配 Qt6 (6.4.2),实现全面升级

深度操作系统 Deepin 宣布 DTK 开发框架已完成基于 Qt6 的全面升级▲ 图源 深度操作系统 deepin 新闻中心

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

IT之家附官方完整介绍如下:

为什么要适配 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(深度)宣布 deepin DTK 已完成基于 Qt6 的全面升级

延伸 · 阅读

精彩推荐
  • Linux每天一个linux命令(30): chown命令详解

    每天一个linux命令(30): chown命令详解

    本篇文章主要介绍了linux chown命令。chown将指定文件的拥有者改为指定的用户或组,感兴趣的朋友可以了解一下。...

    peida7512021-12-01
  • Linux详解linux电源管理驱动编写

    详解linux电源管理驱动编写

    这篇文章主要介绍了详解linux电源管理驱动编写,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    feixiaoxing12542022-03-07
  • Linux详解Linux系统开机后的启动过程

    详解Linux系统开机后的启动过程

    这篇文章主要介绍了详解Linux系统开机后的启动过程,作者简单地列出了其五个步骤,需要的朋友可以参考下 ...

    moon's blog6642019-09-20
  • Linux十个优秀 Linux 虚拟化软件

    十个优秀 Linux 虚拟化软件

    虚拟化软件由于其用途和好处而广泛使用,你可以使用它来体验、测试或运行需要特定操作系统版本的软件。 虚拟化提供了一个抽象的计算机硬件概念,帮...

    未知822023-06-16
  • LinuxLinux操作系统引导的过程

    Linux操作系统引导的过程

    在本文中我们将回顾Linux操作系统中的引导过程。操作系统如何通过不同的启动状态阶段。本文是为那些刚刚接触Linux的读者编写的。...

    今日头条4462019-12-21
  • LinuxLinux系统怎么更新服务器的时间

    Linux系统怎么更新服务器的时间

    Linux系统中更新服务器的时间,是一个基本的操作技巧,所以今天就由小编来为大家介绍Linux系统怎么更新服务器的时间。 ...

    百度经验8952019-10-17
  • LinuxLINUX的端口和服务

    LINUX的端口和服务

    端口号与相应服务的对应关系存放在/etc/services文件中,这个文件中可以找到大部分端口。使用netstat命令 ...

    Linux教程网5922020-04-18
  • Linux国产 Linux 发行版再添新成员,CutefishOS 系统简单体验

    国产 Linux 发行版再添新成员,CutefishOS 系统简单体验

    随着众多开发者的加入,现代化且功能强大的 Linux 发行版不断涌现。感谢IT之家网友热心线索投递,现在国产 Linux 发行版再多一员大将,其名为 CutefishOS,...

    IT之家11022021-08-29