自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

開發(fā) 前端
對于 Qt5 中已經(jīng)標(biāo)注廢棄但還在用的接口,在適配 Qt6 時(shí),我們直接將其刪除,并使用可用的接口替換。對于一些不穩(wěn)定的接口,如通過某些技術(shù)獲取的一些 Qt 私有接口甚至私有變量,我們則通過對比 Qt5 和 Qt6 版本的源代碼,根據(jù)功能邏輯找到變化后的接口,盡量使用 Qt6 公開的接口對其進(jìn)行替換。

近日,深度 deepin 宣布 deepin DTK(Development ToolKit)已正式適配 Qt6 (6.4.2),實(shí)現(xiàn)全面升級。

DTK 作為 deepin 基于 Qt 開發(fā)的一整套簡單且實(shí)用的通用開發(fā)框架,處于 deepin 操作系統(tǒng)中的核心位置,此次成功適配意味著 deepin 操作系統(tǒng)后續(xù)將充分利用 Qt6 版本的新特性及新功能,在最大程度上為用戶提供更先進(jìn)、更高效的體驗(yàn)。

為什么要適配 Qt6

自 deepin 誕生以來,deepin 桌面操作系統(tǒng)就以簡潔、直觀和美觀的外觀,以及獨(dú)特的操作方式引起了廣泛關(guān)注。DTK 作為 deepin 操作系統(tǒng)的核心工具開發(fā)組件,不僅為用戶提供了豐富的控件,而且具有強(qiáng)大的定制能力和高度可擴(kuò)展性,為 deepin 桌面操作系統(tǒng)注入了獨(dú)特的個(gè)性與魅力。因此,deepin 團(tuán)隊(duì)一直關(guān)注著 Qt 的變化。

Qt6 作為我們正在使用的開發(fā)工具包(SDK)的最新版本,不僅是 Qt5 版本的升級,更是一次從頭開始的全面革新,不但加強(qiáng)了跨平臺兼容性、改進(jìn)了性能,同時(shí)引入了諸多新的功能及工具,如更強(qiáng)大的圖形渲染、多線程支持等。

考慮到 Qt6 將成為未來幾年中的主要版本,為確保應(yīng)用程序在未來的發(fā)展中與最新技術(shù)保持同步,我們在 deepin V23 Beta 版本中,完成了 DTK 對 Qt6 (6.4.2) 的適配。

在此次適配 Qt6 后,開發(fā)者可直接在基于 Qt6 開發(fā)的項(xiàng)目上接入 DTK,無需單獨(dú)對 Qt5 & DTK 進(jìn)行二次適配,極大地減少了開發(fā)資源的重復(fù)和浪費(fèi)。已在使用 Qt6 進(jìn)行開發(fā)的應(yīng)用也可以接入 DTK 框架進(jìn)行深入開發(fā)更符合 DDE 樣式的程序,兼顧性能的同時(shí),美觀依然在線。

適配問題及處理

  • API 變動(dòng)

Qt6 對一些 API 進(jìn)行了重大改動(dòng)和調(diào)整,導(dǎo)致一些原有的代碼需要進(jìn)行修改和適配。于是我們對代碼進(jìn)行全面分析和重構(gòu),以確保其在 Qt6 和 Qt5 中的兼容性。

  • 存在的功能缺失

在 Qt6 中,由于技術(shù)和架構(gòu)的變化,某些 Qt5 中存在的功能可能被刪除、替代或者(暫時(shí))禁用。這意味著我們需要找到替代的方式來實(shí)現(xiàn)相同的功能,或者重新設(shè)計(jì)和開發(fā)相關(guān)功能。

  • 第三方庫和插件兼容性

Qt5 常常與其他第三方庫和插件進(jìn)行集成,但是這些庫和插件可能并不完全兼容 Qt6。所以我們在適配 Qt6 時(shí),對這些集成進(jìn)行了評估和測試,并進(jìn)行必要的修改和調(diào)整。如 qtxdg/QGSettings 還未完全適配 Qt6,因此在 Qt6 編譯時(shí)暫時(shí)禁用 libqtxdg/QGSettings 相關(guān)代碼。

  • 依賴項(xiàng)的更新

Qt6 通常會(huì)升級依賴的一些外部庫和工具鏈,為滿足 Qt6 的要求。于是我們主意升級和適配這些依賴項(xiàng)。

  • DTK6 的打包和版本管理的實(shí)現(xiàn)

在 DTK 適配完 Qt6 后,考慮到可維護(hù)性,我們并沒有采用創(chuàng)建新分支的方式管理 DTK5 和 DTK6,二者使用同一套代碼,DTK5 和 DTK6 將共存于系統(tǒng)中。

  • 接口適配

對于 Qt5 中已經(jīng)標(biāo)注廢棄但還在用的接口,在適配 Qt6 時(shí),我們直接將其刪除,并使用可用的接口替換。對于一些不穩(wěn)定的接口,如通過某些技術(shù)獲取的一些 Qt 私有接口甚至私有變量,我們則通過對比 Qt5 和 Qt6 版本的源代碼,根據(jù)功能邏輯找到變化后的接口,盡量使用 Qt6 公開的接口對其進(jìn)行替換。

成果及未來規(guī)劃

整個(gè) Qt6 的適配過程中,總計(jì)有 1000+(1609)文件變動(dòng),代碼新增 20000+ 行數(shù),代碼移除 10000+ 行數(shù)。

截至目前, deepin DTK 已完成 5 個(gè)版本迭代,100+ 次更新,累計(jì)提交代碼近 20 萬行,已被遷移至超過 10 個(gè) Linux 發(fā)行版。

未來,我們也將與最新技術(shù)保持同步,進(jìn)一步提升應(yīng)用程序的穩(wěn)定性。我們衷心希望這次適配能夠?yàn)殚_發(fā)者和用戶帶來更先進(jìn)、更高效的體驗(yàn),也期待更多感興趣的朋友加入我們,討論更多內(nèi)容,為推動(dòng)生態(tài)發(fā)展貢獻(xiàn)力量。

  • deepin-qt SIG 組入口:

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

  • DTK 項(xiàng)目入口:

https://github.com/linuxdeepin/dtk

責(zé)任編輯:武曉燕 來源: OSCHINA
相關(guān)推薦

2023-09-14 06:48:54

deepin

2013-12-24 15:12:38

2012-02-05 15:54:09

Linux Deepi

2009-03-11 08:22:40

谷歌員工期權(quán)交換

2013-10-11 10:22:02

Linux Deepi系統(tǒng)升級

2023-04-19 06:52:49

2011-12-21 10:40:16

Deepin GNOM

2013-10-10 10:22:34

2012-03-01 11:03:02

Linux Deepi

2012-07-17 15:32:27

Linux Deepi

2013-08-07 11:26:10

Linux Deepi

2023-09-21 16:27:25

deepin大模型人工智能

2011-11-29 09:40:08

Linux Deepi特性

2013-08-13 15:02:45

2012-07-19 15:12:30

Linux Deepi

2011-11-23 09:56:01

Linux Deepi

2012-02-17 10:50:43

Linux Deepi

2013-01-29 11:27:37

Linux Deepi

2021-06-22 09:07:30

QtApple Silic iOS端口

2011-08-09 09:36:16

Linux Deepi招募
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號