久違8年Qt再次發布主要更新,正式發布Qt 6.0
老牌跨平台開發框架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進行編譯,但還有一些清理與重構工作需要進行,因此才沒有馬上發布。