老牌跨平臺開發框架Qt釋出了第6個主要版本QT 6.0,這個版本加入了許多新功能,以更好地支援現代工作負載,包括開始應用C++ 17,官方提到,Qt 6現在要求使用的C++ 17相容編譯器,以便在開發QT應用程式時,使用較新的C++語言結構。另外,QT 6.0還更新CMake建置系統,且採用全新的圖形架構,並以Qt Quick統一2D與3D開發體驗。

前一個版本Qt 5,採用的圖形架構使用OpenGL作為底層3D圖形API,官方提到,雖然在2012年開發Qt 5的時候,採用OpenGL是正確的做法,但隨著最近Metal和Vulkan的發展,在不同的平臺,已經有不同的圖形API可以使用,因此在QT 6.0版本做出調整。

用來編寫QML應用程式的標準函式庫Qt Quick,現在於所有3D圖形皆使用渲染硬體介面(Rendering Hardware Interface,RHI),這是新的抽象層,RHI可以讓QT使用底層作業系統的本機3D圖形API,預設情況下,Qt Quick在Windows上使用Direct3D,在macOS則使用Metal。而目前QT中OpenGL的專門類別依然存在,但是已經從QtGui中移除,Qt 6還加入一個稱為QtShaderTools的新模組,以跨平臺處理這些API所使用的不同著色語言。

官方在新版QT,還更新了Qt Quick 3D模組。Qt Quick 3D是要提供一組與2D使用者界面一樣易用的API,讓開發者可以創建複雜的3D場景,並且讓2D和3D內容可以無縫整合。而現在Qt 6中的Qt Quick 3D模組有了重大的進展,官方表示,因為Qt 6可以使用RHI抽象層,因此能夠充分使用底層的API和硬體,提升3D圖形的表現,此外,2D和3D內容,在這個新版本有緊密的整合,開發者可以將2D項目放到3D場景中,並且支援glTF2格式與物理渲染。

另外,官方還大幅更改了QT建置和發布的方式,由於Qt 6本身就是使用CMake建置,這改進了在QT中使用CMAKE建構專案的體驗,不過官方也承諾,他們會在QT 6生命周期中,繼續支援qmake,因此還在使用qmake建置專案的開發者,還不需要做出任何改變。

QT 6的預設套件比起過往的版本都還要小,許多擴充套件透過套件管理器單獨發布,官方表示,這讓他們能夠更靈活地根據市場需求發布擴充套件,像是把常用功能發布為核心QT套件,或是在不同QT版本上提供常用功能套件等,而且現在官方還讓套件管理器能夠交付第三方內容。

Qt 5.15中還有許多附加模組,尚未在Qt 6.0提供,官方預計會在Qt 6.2支援大多數的模組,官方進一步解釋,不少套件都已經針對Qt 6進行編譯,但還有一些清理與重構工作需要進行,因此才沒有馬上發布。


熱門新聞

Advertisement