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