Qt 5 中的 Qt 多媒體有一個(gè)相當(dāng)松散定義的范圍。不同后端對(duì) API 不同部分的支持并不一致,而且 API 本身的部分也不容易跨平臺(tái)使用。對(duì)于 Qt 6,新版本嘗試在一定程度上縮小范圍,并致力于開(kāi)發(fā)一組一致的功能,這些功能適用于所有支持的平臺(tái)。但還沒(méi)有達(dá)到這個(gè)目標(biāo),但希望通過(guò) Qt 6.2.0 的發(fā)布填補(bǔ)大部分實(shí)施空白。
Qt 6.2 版本提供了多項(xiàng)新功能,例如 3D 粒子,讓您可以使用 Qt Quick 3D 創(chuàng)建激動(dòng)人心的 3D 用戶體驗(yàn)。除了新功能之外,Qt 6.2 還恢復(fù)了對(duì) Qt 6 以前尚未提供的更多附加模塊的支持。
Qt作為一個(gè)跨平臺(tái)框架,通常用作圖形工具包。目前qt6已經(jīng)發(fā)布,本文主要對(duì)Qt6.1各大模塊更新詳情進(jìn)行講解。
一年半前,Qt做出了一個(gè)重大決定,開(kāi)始使用CMake來(lái)構(gòu)建Qt 6。做出此決定的主要原因是用戶反饋。大多數(shù)Qt用戶希望更輕松地將他們的Qt項(xiàng)目與其他軟件集成在一起。根據(jù)當(dāng)時(shí)的研究,CMake顯然是Qt用戶中最常用的構(gòu)建工具-除了qmake。此外,遷移到CMake還為我們提供了擺脫內(nèi)部構(gòu)建工具維護(hù)負(fù)擔(dān)的機(jī)會(huì)。
Qt 6.0正式發(fā)布。這是第一個(gè)版本,標(biāo)志著Qt的重要里程碑。Qt 6的任務(wù)是使Qt成為未來(lái)的開(kāi)發(fā)平臺(tái)。作為Qt的主要版本,Qt 6.0為我們提供了更高的自由度,以實(shí)現(xiàn)新功能,以及更好地支持當(dāng)今和未來(lái)的需求。Qt 6.0是Qt 5系列的延續(xù),我們一直致力于使遷移對(duì)用戶無(wú)干擾。
Qt Quick中鼠標(biāo)和觸摸事件的傳遞是很復(fù)雜的,幾年前我們就清楚地意識(shí)到,我們需要重構(gòu)事件繼承層次結(jié)構(gòu),為各種事件類(lèi)型提供一些通用的API,以便共享更多的傳遞代碼。在Qt 5.8中,我們添加了QQuickPointerEvent和相關(guān)的類(lèi)型,以此作為原型
Qt 6具有很多新功能。我們添加的最令人興奮的功能之一是將QML和Qt Quick綁定的概念帶回到Qt的核心,并允許從C ++使用它。
Qt 6的產(chǎn)品使命是使Qt成為未來(lái)的生產(chǎn)力平臺(tái)。作為Qt的主要版本,Qt 6.0提供了更高的自由度來(lái)實(shí)現(xiàn)新功能,新功能以及更好地支持當(dāng)前和未來(lái)的需求。Qt 6.0是Qt 5系列的延續(xù),對(duì)用戶遷移不會(huì)造成破壞。
Qt Quick Controls 1是我們第一個(gè)QML的UI框架。這些控件主要是用QML編寫(xiě)的,沒(méi)有使用太多的C++。當(dāng)時(shí),QML還是一種新技術(shù),這意味著我們?cè)谛阅茉O(shè)計(jì)方面沒(méi)有足夠的經(jīng)驗(yàn),不知道會(huì)有什么結(jié)果。因此,造型API在設(shè)計(jì)上最終是低效的,它有很多肥大的委托,在控制邏輯和造型上都使用了大量的JavaScript、綁定、自省、Loaders和QObjects。它還存在對(duì)Qt Widgets的鏈接依賴,以獲得本地的樣式和基于Widget的對(duì)話框。而如果沒(méi)有我們今天的QML編譯器,這一切最終都是一種相當(dāng)緩慢和混亂的方法。Qt Quick Controls 2是當(dāng)我們意識(shí)到它在嵌入式硬件上的表現(xiàn)也不好時(shí)重新考慮解決方案。
您可能知道,Qt有一個(gè)元類(lèi)型系統(tǒng),該系統(tǒng)提供有關(guān)類(lèi)型的運(yùn)行時(shí)動(dòng)態(tài)信息。它可以將您的類(lèi)型存儲(chǔ)在QVariant中,并在信號(hào)插槽系統(tǒng)中排成隊(duì)列,并在整個(gè)QML引擎中使用。在即將發(fā)布的Qt 6.0版本中,我們借此機(jī)會(huì)重新審視了它的基礎(chǔ)知識(shí),并利用了C ++ 17為我們提供的功能。在下文中,我們將檢查這些更改,并說(shuō)明它們?nèi)绾斡绊懩捻?xiàng)目。