Qt 6.10 透過改進的可存取性、整合資料和向量動畫實現了跨平台開發的現代化。

  • Qt 樣式內建增強的可存取性和高對比度
  • 更快的 UI:FlexboxLayout、SVG/Lottie 動畫和 SearchField
  • 更簡單的資料:QML 中的 QRangeModel、Synchronizer、TreeModel 和排序/過濾器
  • 平台更新:Android 15/16、macOS/iOS 26、WebView2 和 PipeWire

Qt 6.10

Qt 6.10 llega 為應用程式開發人員和設備製造商提供了大量改進,新功能涵蓋可訪問性和介面設計到音訊、圖形和平台支援。 這是一個讓日常生活更輕鬆的版本 無論您使用 QML 和 Qt Quick 還是繼續使用 C++ 和 Qt Widgets。

除了標題之外,還有一些變化直接影響生產力:Qt Quick 中類似 flexbox 的佈局系統、擴展的向量動畫(SVG 和 Lottie)、SearchField 等新控件,以及將 C++ 數據連接到 QML 介面的更簡潔的方法。 Android、macOS/iOS、Windows 和 Linux 也取得了進步,以及 Qt Graphs、Qt Quick 3D、Qt Multimedia 或 Qt Core 等模組中的大量小細節。

Qt 6.10 中的可及性和高對比度

可訪問性有了顯著的飛躍: Qt 內建樣式現在尊重 自動調整桌面和行動裝置上的系統高對比度設定。這有助於保持與環境其他部分的視覺一致性,並無需額外工作即可遵守法規。

Qt 小工具和 Qt Quick 控制項向輔助技術(例如螢幕閱讀器)展示的方式已經修改, 與底層平台更好地集成WebAssembly 的進展尤其顯著,其中許多改進也將在即將到來的維護更新中出現在 LTS 分支中。

Qt 6.10 建置介面更快

Qt Quick 不斷發展,以加快迭代速度、減少自訂程式碼並實現現代化、響應式的 UI。 6.10 首次推出 新的彈性盒佈局,向量動畫支援得到擴展,並出現了一個可立即使用的 SearchField 控制項。

Qt Quick 的 Flexbox 佈局

FlexboxLayout 作為「技術預覽」被納入,該系統受到 CSS 的靈活框架佈局的啟發,並與 Qt Quick 的佈局機制整合(包括附加屬性 配置每個項目的行為)。它旨在在幾分鐘內編寫響應式介面並在運行時保持穩定的性能。

Qt 已經為自適應介面提供了幾種佈局,但使用 FlexboxLayout 可以更輕鬆地適應不同的螢幕尺寸/方面,並且 緩解文字長度變化 由於國際化或排版偏好。

動畫向量圖形:SVG 和 Lottie

經過幾個版本加強對向量圖形的支援(Qt Quick Scene Graph、Qt Quick Shapes 和 SVG 改進),在 6.10 中加入了 支援向量動畫 在 SVG 和 Lottie 影像中均可使用。 Qt Lottie 模組擴展了支援的現代文件範圍,並且借助 VectorImage,可以將 Lottie 渲染為可擴展的硬體加速向量圖像。

此外,還加入了 lottietoqml 工具,用於將 Lottie 檔案轉換為 Qt Quick 場景 直接在 QML 中,補充 svgtoqml 開創的流程。

新的 Qt Quick 控制項:SearchField

SearchField 是一個專門用於搜尋的輸入字段,具有內建樣式和 主要平台上的原生外觀。它會在您鍵入時在過濾的下拉清單中顯示相關建議,並由您可以透過標準 QML 資料路徑提供的模型提供支援。

這部分內容與 C++ 程式碼和 Qt Quick UI 之間資料交換的改進非常契合:6.10 中的新功能使 更容易連接 C++ 模型 使用 SearchField 等控件,無需借助冗長的模板。

透過 Qt 6.10,您可以更輕鬆地將資料整合到 QML 中

Qt 提供了多種將 C++ 邏輯與 QML 表示(單例、QAbstractItemModel、上下文屬性、QObject 物件等)耦合的機制,以及以下工具: Qt 創造者 8。然而,建立完整的雙向整合可能需要 重複程式碼太多在 Qt 6.10 中,透過為實際工作設計的新 API 和類型降低了這一障礙。

QRange模型

QRangeModel 來了,它是 QAbstractItemModel 的輕量級實現,用於將 C++ 範圍公開為 std::vector、std::array 或任何可迭代容器 直接在 Widgets 和 QML/Qt Quick 視圖中使用。它支援簡單值(例如 int)和更複雜的類型(Q_GADGET 或 std::tuple),無需手動編寫模型即可產生合適的角色。

如果您使用小工具,QRangeModel 會將每個屬性公開為命名角色,以便 QML 委託可以 具有所需屬性的鏈接 以一種類型化的方式。實際上,您無需手動管理角色或濫用上下文屬性,並且所有內容都與編譯後的 QML 相容。

delegateModelAccess:直接從委託中寫入

到目前為止,要從委託寫入模型,通常需要模型物件或使用上下文屬性。在 6.10 中,只需激活 ReadWrite 模式下的 delegateModelAccess 以便代表可以自然地寫入所需的屬性。

新功能適用於所有 Qt 視圖:Instantiator、Repeater、ListView、GridView、TableView、TreeView、MapItemView 和 Repeater3D。 編寫可編輯的 UI 這使得它更加可預測並且與良好的 QML 實踐保持一致。

同步器:多個屬性的同步

多年來一直備受期待的同步器元素首次亮相,旨在確保 多個屬性具有相同的值 盡可能地,而不會破壞其中任何連結。綁定過去通常與訊號處理程序結合使用,這對於用 C++ 實作的控制項最有效。

使用同步器,一切都簡化為一個元素, 支援 n 個屬性 以及 C++ 和 QML 目標平台。它在 Qt.labs.synchronizer 模組中可用,並以技術預覽版的形式發布。

QML 中的 TreeModel

將樹狀資料暴露給 Qt Quick 過去需要實作 QAbstractItemModel。 QRangeModel 簡化了 C++ 的這個過程,但有時你需要 直接在 QML 中聲明樹 適用於原型或小型資料集。這正是 QML TreeModel 類型的用武之地。

使用 TreeModel,您可以使用 JSON 樣式陣列和字典語法定義節點,為每個項目指派鍵值對,並在 TreeView 等視圖中使用它們,而無需編寫複雜的基礎結構。 允許您迭代 UI 如果需要的話,在將結構移植到 C++ 之前,可以高速進行。

QML 中的 SortFilterProxyModel

在 C++ 方面,我們多年來一直在使用 QSortFilterProxyModel。 Qt 6.10 將其宣告式對應模型引入 QML,用於 對資料進行排序和過濾 具有綁定友好的 API。它包括基於角色的排序器(例如 RoleSorter)和響應式函數過濾器(您可以覆蓋),以保持列表和表格最新。

這個想法是,你可以直接在 QML 中編寫排序和過濾管道, 簡潔且富有表現力的程式碼,而不會犧牲性能或清晰度。

使用 Qt 6.10 讓您的產品保持現代化

隨著系統不斷發展,用戶希望他們的應用程式能夠在最新的裝置和版本上運作。在 6.10 中, 令人興奮的平台改進 這有助於實現這種連續性,正如 Qt 衍生項目所示,例如 LXQt 2.0.

Android:目前支援和新工具

Qt 6.10 宣布正式支援 Android 15 和 16,並調整了建置系統並支援 16KB 頁面。這將允許您 目標目前硬體 沒有任何意外,保持穩定性和性能。

Qt Jenny 1.0 首次亮相,它是一個程式碼產生器,可以從註解的 Java 類別產生 JNI 膠水。它由編譯器和註解處理器組成,基於 QJniObject 產生 Qt C++ API,以存取 BatteryManager、PowerManager 或 AudioManager 等原生服務。 甚至簡化通知,這些通常透過 JNI 實現,非常複雜。它在 Maven Central 上可用,並在 Qt Creator 和線上文件中附帶範例。

自 Android 12 以來,啟動畫面的處理也得到了改進,避免 雙歡迎螢幕建議的方法是使用專用的 SplashActivity,設定具有半透明的主題,並在 Android 準備好時啟動 Qt Activity,實現無縫過渡。

macOS 和 iOS 26

這是自 macOS 26 “Tahoe” 發布以來的首個次要版本。全新的 Liquid Glass 設計以及渲染架構的變更帶來了許多挑戰,而 Qt 已成功解決了這些挑戰。 提供全力支持在即將發布的補丁中,許多改進將移植到 LTS 分支(6.8 和 6.5)。

Windows:帶有 WebView2 的 Qt WebView

Qt WebView 整合了基於 WebView2 的實現,使用 Microsoft Edge 作為引擎。這樣您就可以 嵌入網頁內容 配合系統原生瀏覽器,無需拖曳Qt WebEngine即可在Windows上部署,減輕佔用空間。

Linux 和多媒體

Qt Multimedia 為 PipeWire 添加了原生後端,改進了內容處理和硬體的延遲和控制(例如, Mixxx 2.5), 此外 容器化環境中的支援更薄弱添加音頻音調補償以在加速或減慢音軌時保持品質。

嵌入式硬體

在裝置上,Boot to Qt 採用 Yocto 5.2「Walnascar」並出現 適用於 Ezurio 氮氣板目標:透過更新的堆疊加快現代硬體的上市時間。

Qt 6.10 中的其他顯著改進

Qt Quick 3D 現在允許 輕鬆烘焙光貼圖 透過高性能提高質量,並反向運行粒子效果,有助於模擬雨或雪對模型的影響。

Qt Graphs 增加了新的填充表面、更好的多軸支援、可自訂的 2D z 順序以及選項 渲染 3D 圖形的切片 可列印的圖像。目錄中還新增了一個新的填充表面圖形。

在 Qt Widgets 中,創建 自訂委託 它更易於使用,並且在專案視圖中提供更精細的拖放控制。佈局可讓您單獨配置尺寸限制。

虛擬鍵盤現在包括 拉脫維亞分佈,擴大了語言覆蓋範圍。在 Qt Core 中,API 也得到了改進,可以處理語言環境、XML 文件和連續字串。

在 Qt GUI 中,QRhi 後端加入了 3D 適配器枚舉 當使用 Direct3D 11/12 或 Vulkan 時,可以更輕鬆地在多卡機器上選擇 GPU。

已經介紹 性能提升 在 QGrpcHttp2Channel 中,這有利於在苛刻的場景中使用基於 HTTP/2 的 gRPC 的應用程式。

關於 Qt 6.10 的更多信息

Wayland 收到 會話管理,這是現代桌面整合的關鍵元件,並且為合成器(例如 KWin)等元件添加了有用的圖形重置通知。

Qt WebEngine 包含對 Chromium 擴展這是基於 QtWebEngine 的瀏覽器使用者的長期需求。這為 Falkon 等計畫打開了大門,使其能夠使用 Chromium 中已有的擴展生態系統。

除了 VectorImage 中直接支援 Lottie 之外,該工具 lottietoqml 簡化 將動畫帶入 QML 世界,在不犧牲效能的情況下擴展您的創意庫。

Qt 6.10 是朝著開發更易於存取和更現代化的介面邁出的重要一步,它能夠更輕鬆地將 C++ 資料整合到 QML 中,並無縫部署到最新平台,同時還添加了實用的多媒體、圖形和核心功能,這些功能在效能和最終產品品質上都有所體現。 如果你的堆疊中有 Qt,此更新值得在您的路線圖上佔有一席之地。

qt-6
相關文章:
Qt 6.6 已經發布,這些是它的新聞