IT之家 9 月 13 日消息,據(jù)深度操作系統(tǒng) deepin 新聞中心顯示,deepin DTK(Development ToolKit)近日已正式適配 Qt6 (6.4.2),實(shí)現(xiàn)全面升級(jí)。
官方表示,DTK 作為 deepin 基于 Qt 開發(fā)的一整套通用開發(fā)框架,處于 deepin 操作系統(tǒng)中的核心位置,此次成功適配意味著 deepin 操作系統(tǒng)后續(xù)將充分利用 Qt6 版本的新特性及新功能,在最大程度上為用戶提供更先進(jìn)、更高效的體驗(yàn)。
IT之家附官方完整介紹如下:
為什么要適配 Qt6
自 deepin 誕生以來(lái),deepin 桌面操作系統(tǒng)就以簡(jiǎn)潔、直觀和美觀的外觀,以及獨(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 版本的升級(jí),更是一次從頭開始的全面革新,不但加強(qiáng)了跨平臺(tái)兼容性、改進(jìn)了性能,同時(shí)引入了諸多新的功能及工具,如更強(qiáng)大的圖形渲染、多線程支持等。
考慮到 Qt6 將成為未來(lái)幾年中的主要版本,為確保應(yīng)用程序在未來(lái)的發(fā)展中與最新技術(shù)保持同步,我們?cè)?deepin V23 Beta 版本中,完成了 DTK 對(duì) Qt6 (6.4.2) 的適配。
在此次適配 Qt6 后,開發(fā)者可直接在基于 Qt6 開發(fā)的項(xiàng)目上接入 DTK,無(wú)需單獨(dú)對(duì) Qt5 & DTK 進(jìn)行二次適配,極大地減少了開發(fā)資源的重復(fù)和浪費(fèi)。已在使用 Qt6 進(jìn)行開發(fā)的應(yīng)用也可以接入 DTK 框架進(jìn)行深入開發(fā)更符合 DDE 樣式的程序,兼顧性能的同時(shí),美觀依然在線。
適配問題及處理
API 變動(dòng)
Qt6 對(duì)一些 API 進(jìn)行了重大改動(dòng)和調(diào)整,導(dǎo)致一些原有的代碼需要進(jìn)行修改和適配。于是我們對(duì)代碼進(jìn)行全面分析和重構(gòu),以確保其在 Qt6 和 Qt5 中的兼容性。
存在的功能缺失
在 Qt6 中,由于技術(shù)和架構(gòu)的變化,某些 Qt5 中存在的功能可能被刪除、替代或者(暫時(shí))禁用。這意味著我們需要找到替代的方式來(lái)實(shí)現(xiàn)相同的功能,或者重新設(shè)計(jì)和開發(fā)相關(guān)功能。
第三方庫(kù)和插件兼容性
Qt5 常常與其他第三方庫(kù)和插件進(jìn)行集成,但是這些庫(kù)和插件可能并不完全兼容 Qt6。所以我們?cè)谶m配 Qt6 時(shí),對(duì)這些集成進(jìn)行了評(píng)估和測(cè)試,并進(jìn)行必要的修改和調(diào)整。如 qtxdg / QGSettings 還未完全適配 Qt6,因此在 Qt6 編譯時(shí)暫時(shí)禁用 libqtxdg / QGSettings 相關(guān)代碼。
依賴項(xiàng)的更新
Qt6 通常會(huì)升級(jí)依賴的一些外部庫(kù)和工具鏈,為滿足 Qt6 的要求。于是我們注意升級(jí)和適配這些依賴項(xiàng)。
DTK6 的打包和版本管理的實(shí)現(xiàn)
在 DTK 適配完 Qt6 后,考慮到可維護(hù)性,我們并沒有采用創(chuàng)建新分支的方式管理 DTK5 和 DTK6,二者使用同一套代碼,DTK5 和 DTK6 將共存于系統(tǒng)中。
接口適配
對(duì)于 Qt5 中已經(jīng)標(biāo)注廢棄但還在用的接口,在適配 Qt6 時(shí),我們直接將其刪除,并使用可用的接口替換。對(duì)于一些不穩(wěn)定的接口,如通過某些技術(shù)獲取的一些 Qt 私有接口甚至私有變量,我們則通過對(duì)比 Qt5 和 Qt6 版本的源代碼,根據(jù)功能邏輯找到變化后的接口,盡量使用 Qt6 公開的接口對(duì)其進(jìn)行替換。
成果及未來(lái)規(guī)劃
整個(gè) Qt6 的適配過程中,總計(jì)有 1000+(1609)文件變動(dòng),代碼新增 20000+ 行數(shù),代碼移除 10000+ 行數(shù)。
截至目前, deepin DTK 已完成 5 個(gè)版本迭代,100+ 次更新,累計(jì)提交代碼近 20 萬(wàn)行,已被遷移至超過 10 個(gè) Linux 發(fā)行版。
未來(lái),我們也將與最新技術(shù)保持同步,進(jìn)一步提升應(yīng)用程序的穩(wěn)定性。我們衷心希望這次適配能夠?yàn)殚_發(fā)者和用戶帶來(lái)更先進(jìn)、更高效的體驗(yàn),也期待更多感興趣的朋友加入我們,討論更多內(nèi)容,為推動(dòng)生態(tài)發(fā)展貢獻(xiàn)力量。
參考
廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。