deepin 宣布 deepin DTK 已完成基于 Qt6 的全面升级
近日,深度 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项目入口:
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Bee v2.1.8,整合 SpringBoot 配置多环境方式,生成 Javabean 支持 Swagger
自动生成Spring Boot后端微服务代码,几秒钟即可完成, 秒杀GPT. 支持多表关联插入,更新,删除. Java ORM Bee 不但支持JDBC类型的数据库,还支持Mongodb, 也支持Android, 鸿蒙. Hibernate/MyBatis+ plus +Sharding JDBC + Jpa+ Spring data+ GraphQL+ App ORM (Android, 鸿蒙)=Bee 要整合一堆的工具,还不如只用一个小巧又功能强大的工具。犹如 JAVA 界的数据源连接池 Hikari, 文件虽小,功能却不赖! 最新功能介绍: V2.1.8 (2023.8.22 LTS版) 1.1 兼容spring boot命令行active选择环境, 如:java -jar springbootDemo.jar --spring.profiles.active=dev,会觖发bee-dev.properties 1.2 兼容spring boot数据源配置,如spring.datasource.url 1.3 不启动应用,直接运行main方法,bee.properties没有配...
- 下一篇
Wasmer 悬赏 5000 美元以在 Zig 中添加 Wasm/WASIX 支持
Wasmer 创始人兼 CEO Syrus Akbary 在 Zig 仓库中提出了一个“支持 WASIX”的 issue;并提供了 5000 美元的悬赏。他表示,Zig 支持 WASIX 对 Wasm 和 Zig 社区来说均意义重大。 根据介绍,WASIX 是对现有 WASI ABI 的长期稳定和支持,加上额外的非侵入式系统调用扩展,以弥补缺失的空白;使真正、实用和有用的应用程序能够立即编译和使用。它的目标是加快 WASI 生态系统的发展,且不会对 wasi_preview1 进行任何破坏性变更。 目前 WASIX 已在 WASI Preview 1 的基础上增加了对 pthreads、sockets、fork、process spawning 等功能的全面支持。Syrus Akbary 指出,通过在 Zig 中提供对 WASIX 的支持,将会带来诸多好处。譬如: 它允许在许多平台(包括浏览器)中使用 Zig 它将允许拥有一个通用的 C 编译器,将 C 文件(在底层使用 LLVM)编译到任何架构,并且可以从任何支持运行 Wasm 的架构运行 它将允许创建 http 服务器(或 TCP/...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8编译安装MySQL8.0.19
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路