我們非常高興地宣布Qt 6.8現(xiàn)已發(fā)布,該版本支持新的桌面、移動(dòng)和嵌入式平臺(tái),獲得數(shù)百項(xiàng)改進(jìn)以及令人興奮的新功能,可提升您的開發(fā)體驗(yàn)并滿足苛刻應(yīng)用程序的需求。
在此版本中,我們專注于改進(jìn)和穩(wěn)定現(xiàn)有功能。自Qt 6.7以來,我們已修復(fù)了500多個(gè)錯(cuò)誤并提升了性能,您的現(xiàn)有代碼無需改動(dòng)即可更好地運(yùn)行。在macOS上,Qt Quick應(yīng)用程序現(xiàn)在可與原生菜單欄集成,要獲得Windows 11的原生外觀,可以使用新的Fluent風(fēng)格。使用Qt 6.8,Quick窗口的大小調(diào)整在macOS上變得更快,而在Windows上,通過將默認(rèn)字體數(shù)據(jù)庫(kù)更改為DirectWrite,應(yīng)用程序的啟動(dòng)時(shí)間也得到了改善。
技術(shù)預(yù)覽版中的幾個(gè)模塊已經(jīng)完善:Qt Graphs、Qt HttpServer和Qt GRPC在此版本中將得到全面支持。感謝用戶的反饋,我們得以在這些模塊初次作為技術(shù)預(yù)覽引入后,進(jìn)行大量改進(jìn)并最終完成這些模塊。
對(duì)于商業(yè)用戶,Qt 6.8提供長(zhǎng)周期支持,隨著該版本的發(fā)布,我們將支持和維護(hù)時(shí)間從3年延長(zhǎng)至5年。此外,我們通過提供 SPDX v2.3 格式的 Qt 庫(kù)軟件材料清單 (SBOM) 文檔,為軟件產(chǎn)品的創(chuàng)建者提供支持,使其符合歐盟即將出臺(tái)的《網(wǎng)絡(luò)彈性法案》(Cyber-Resilience Act)規(guī)定,并提供提高軟件安全性所需的信息。
部署到新平臺(tái)、架構(gòu)和設(shè)備上
通過升級(jí)到Qt 6.8,您可以使現(xiàn)有的移動(dòng)應(yīng)用程序適用于運(yùn)行iOS 18或Android 14的用戶。
現(xiàn)在完全支持在Arm上開發(fā)Windows應(yīng)用程序,使用戶能夠針對(duì)今年新推出的Microsoft CoPilot+ PC進(jìn)行開發(fā)。您的桌面應(yīng)用程序可以部署到 macOS 15和Arm架構(gòu)的Linux桌面。這樣,Qt對(duì)Arm架構(gòu)的支持就涵蓋了從嵌入式到移動(dòng)和桌面端的所有設(shè)備類別。
作為一個(gè)全新的設(shè)備類別,您現(xiàn)在可以為Apple Vision Pro和Meta Quest 3 XR頭顯創(chuàng)建應(yīng)用程序和用戶體驗(yàn)。對(duì)于設(shè)備創(chuàng)建者,我們?cè)黾恿藢?duì)Raspberry Pi 5和NVIDIA AGX Orin的支持,以及對(duì)恩智浦(NXP)、韜睿(Toradex)和意法半導(dǎo)體(STM)等技術(shù)合作伙伴的SoC系列的支持。隨著StarFive VisionFive 2的加入,Qt 6.8支持基于日益流行的新型RISC-V平臺(tái)的單板計(jì)算機(jī)。
構(gòu)建更小、更精簡(jiǎn)的Qt應(yīng)用程序
利用Qt 6.8的 "配置選項(xiàng)",開發(fā)者可以微調(diào)Qt的性能和效率,從而精確地滿足其應(yīng)用程序的特定需求。通過移除Qt框架中未使用的功能和組件,應(yīng)用程序可減少多達(dá)77%的ROM使用量,降低32% 的RAM消耗,并顯著加快啟動(dòng)速度。
請(qǐng)閱讀我們關(guān)于減少咖啡機(jī)示例二進(jìn)制文件大小的指南,以及關(guān)于構(gòu)建優(yōu)化Qt的文檔,了解更多信息。
Qt Graphs:全面支持3D數(shù)據(jù)可視化
Qt 6.8現(xiàn)在全面支持Qt Graphs,為開發(fā)者創(chuàng)建交互式動(dòng)態(tài)2D和3D可視化提供了強(qiáng)大的工具包。無論您是在進(jìn)行科學(xué)模擬、金融圖表還是實(shí)時(shí)數(shù)據(jù)分析,Qt Graphs都能提供所需的渲染功能和性能優(yōu)化,讓您的數(shù)據(jù)栩栩如生。Qt Graphs 3D現(xiàn)在支持Bars3D中的透明度,并可對(duì)標(biāo)簽邊距、標(biāo)題位置和網(wǎng)格線渲染進(jìn)行更多控制。Qt Graphs 2D可以使用QML組件渲染自定義條形圖,支持堆疊和百分比堆疊條形圖,可以在條形圖上顯示標(biāo)簽,在坐標(biāo)軸上顯示標(biāo)題,并擁有更多的數(shù)據(jù)映射API。
我們統(tǒng)一了2D和3D圖形的主題API,并將Qt Widgets的特定API移到了單獨(dú)的Qt Graphs Widgets模塊中,因此純Qt Quick應(yīng)用程序不再需要鏈接Qt Widgets。有關(guān)我們?cè)赒t Graphs技術(shù)預(yù)覽版期間對(duì)其所做更改的更多詳情,請(qǐng)參閱Sami 的博文。
希望從Qt Charts或Qt DataVisualization遷移的用戶可在我們的文檔中找到遷移指南。
Qt Multimedia:自定義數(shù)據(jù)和音頻后處理
Qt Multimedia一直是構(gòu)建富媒體應(yīng)用程序的基石,在Qt 6.8中,我們使其變得更加出色。通過QVideoFrameInput、QAbstractVideoBuffer和QAudioBufferInput,應(yīng)用程序可以將自定義媒體數(shù)據(jù)發(fā)送到錄制會(huì)話中;通過QAudioBufferOutput,可以接收解碼后的音頻數(shù)據(jù)以進(jìn)行后處理。
在Linux桌面上,QScreenCapture現(xiàn)在支持 Wayland合成器,通過XDG Desktop Portal使用ScreenCast服務(wù)。
Qt Quick:更多特效和可縮放矢量圖形
Qt Quick仍然是構(gòu)建快速流暢用戶界面的首選模塊。在Qt 6.8中,我們進(jìn)行了多項(xiàng)性能優(yōu)化,以提高渲染速度,尤其是復(fù)雜場(chǎng)景的渲染速度。Qt Quick Effect Maker學(xué)會(huì)了發(fā)光和遮罩模糊,可以制作精靈動(dòng)畫,并將項(xiàng)目彎曲成圓形或弧形。這意味著在資源密集型應(yīng)用程序中,動(dòng)畫更流暢,響應(yīng)速度更快。
該版本新增的一個(gè)重要功能是Qt Quick Vector Image模塊,它能將SVG文件作為可縮放矢量圖形無縫集成到Qt Quick場(chǎng)景中。對(duì)于希望創(chuàng)建分辨率獨(dú)立和響應(yīng)靈敏UI元素的開發(fā)者來說,這是一個(gè)理想選擇,可確保您的設(shè)計(jì)在不同設(shè)備和屏幕尺寸上都能保持清晰一致。在Qt Quick Shapes模塊中,ShapePath元素現(xiàn)在可以使用任意紋理提供項(xiàng)目來填充形狀,并應(yīng)用任意變換。
5
有關(guān)Qt 6.8中矢量圖形改進(jìn)的更多信息,請(qǐng)參閱Eskil的博文。
QQuickRenderTarget獲得了新的API,為開發(fā)者提供了對(duì)紋理處理的更多控制,并簡(jiǎn)化了Qt Quick 3D與外部引擎、框架和API的集成。
TableView現(xiàn)在允許開發(fā)者和最終用戶移動(dòng)列和行,Image和BorderImage類型可以在異步加載新設(shè)置的圖像之前保留先前的圖像。
Qt Quick Control:更好地集成到桌面
Qt 6.8添加了Fluent WinUI3設(shè)計(jì)系統(tǒng)的實(shí)現(xiàn),作為Qt Quick Control樣式。這種新樣式使應(yīng)用程序在Windows 11上看起來更像原生應(yīng)用,但它是使用Qt Quick基元實(shí)現(xiàn)的,并可用于所有平臺(tái)。
在macOS上,QuickMenuBar和菜單默認(rèn)與系統(tǒng)的原生菜單欄集成。上下文菜單和其他彈出窗口也可以作為頂級(jí)彈出窗口,現(xiàn)在這已成為桌面平臺(tái)上Qt Quick對(duì)話框的默認(rèn)行為。應(yīng)用程序可以使用新的popupType屬性來控制每個(gè)彈出窗口。
5
新的XR模塊:提供沉浸式體驗(yàn)
隨著虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)和混合現(xiàn)實(shí)應(yīng)用的重要性與日俱增,我們很高興在Qt 6.8中推出一個(gè)專門支持XR設(shè)備的新模塊。新的Qt Quick 3D Xr模塊使開發(fā)者能夠更輕松地為虛擬現(xiàn)實(shí)(VR)和增強(qiáng)現(xiàn)實(shí)(AR)平臺(tái)構(gòu)建身臨其境的體驗(yàn),確保Qt始終是應(yīng)用程序開發(fā)者的首選,無論目標(biāo)設(shè)備是什么。
新模塊通過手部跟蹤和控制器實(shí)現(xiàn)了對(duì)空間輸入以及空間錨點(diǎn)和移動(dòng)的支持。這樣,用戶在使用Apple VisionPro或Meta Quest 2和3等OpenXR 設(shè)備時(shí),就可以與Qt Quick 3D構(gòu)建的環(huán)境進(jìn)行交互。
為了優(yōu)化頭戴式顯示器的渲染性能,我們?cè)赒t Quick場(chǎng)景圖、標(biāo)準(zhǔn)Quick項(xiàng)目和材質(zhì)以及Qt Shader Tools構(gòu)建系統(tǒng)集成中完成了對(duì)多視角渲染的支持。
Qt Quick 3D:改進(jìn)的陰影和材質(zhì)增強(qiáng)功能
Qt Quick 3D 6.8通過使用級(jí)聯(lián)陰影貼圖和百分比更接近過濾軟陰影來渲染更好的陰影。
技術(shù)美術(shù)師可以通過PrincipledMaterial的新屬性調(diào)整Fresnel,并根據(jù)頂點(diǎn)顏色屬性應(yīng)用蒙版。自定義材質(zhì)現(xiàn)在支持與PrincipledMaterial相同的屬性。
網(wǎng)絡(luò)功能: Qt Network、Qt Network Auth、Qt GRPC和Qt HttpServer
QNetworkAccessManager現(xiàn)在可通過本地套接字發(fā)送HTTP請(qǐng)求,應(yīng)用程序可使用QFormDataBuilder輕松創(chuàng)建多部分HTTP消息。
在Qt Network Auth模塊中,我們根據(jù)用戶反饋進(jìn)行了許多改進(jìn)并解決了許多問題。此外,新的QOAuthUriSchemeReplyHandler類允許處理私有/自定義或 https URI方案重定向,QOAuth2AuthorizationCodeFlow類支持密鑰代碼交換證明。
QDnsLookup了解了TLS關(guān)聯(lián)記錄,現(xiàn)在可以通過TLS發(fā)送 DNS,并告知客戶端DNS服務(wù)器是否已對(duì)數(shù)據(jù)的真實(shí)性進(jìn)行了驗(yàn)證。
客戶端現(xiàn)在已完全支持Qt GRPC和Qt Protobuf模塊,其API已趨于穩(wěn)定,并增加了對(duì)流媒體的支持。
跨模塊的其他增強(qiáng)功能
除上述主要新增功能外,我們還對(duì)整個(gè)框架進(jìn)行了一系列增強(qiáng),以進(jìn)一步簡(jiǎn)化開發(fā)。有關(guān)所有功能的完整列表,請(qǐng)查看我們的Qt 6.8新特性文檔頁(yè)面。
Qt Core
新的QChronoTimer與std::chrono集成,提高了基于時(shí)間的操作的精確度。在常用代碼路徑中,QString、QByteArray和QList現(xiàn)在可以調(diào)整大小而無需數(shù)據(jù)初始化。
QHash現(xiàn)在支持某些Qt類型的異構(gòu)查找,特別是QString和QStringView,而QDirListing則為目錄條目提供了基于迭代器的API:
針對(duì)Android平臺(tái)的開發(fā)者可以使用QtJniTypes命名空間聲明帶有JNI簽名的Java 類型,并在通過QJniObject與JNI交互時(shí)依賴編譯時(shí)簽名生成。QJniArray類型可讓您輕松地從C++代碼中使用 Java數(shù)組。
我們還繼續(xù)為Qt值類型添加對(duì)C++20 space-ship運(yùn)算符<=>()的支持,QPointF和QMarginsF等浮點(diǎn)幾何類型現(xiàn)在支持模糊比較和空值檢查。
Qt GUI
使用Qt 6.8開發(fā)的應(yīng)用程序現(xiàn)在可以顯式請(qǐng)求顏色方案,以顯式的深色或淺色外觀覆蓋系統(tǒng)設(shè)置:
應(yīng)用程序還可以覆蓋上下文菜單觸發(fā)器,以提供跨平臺(tái)的一致應(yīng)用程序行為。
我們對(duì)色彩空間支持做了一些補(bǔ)充,并增加了更多的API,以便對(duì)字體的合并和樣式策略進(jìn)行精細(xì)控制。
輔助功能框架現(xiàn)在支持屬性報(bào)告,并允許應(yīng)用程序引發(fā)公告事件,供輔助技術(shù)使用。
Qt SQL
Qt SQL模塊的用戶現(xiàn)在可以指定數(shù)值精度策略,QSqlDatabase可以更改數(shù)據(jù)庫(kù)連接的線程親和性。PostgreSQL和 MySQL/MariaDB驅(qū)動(dòng)程序現(xiàn)在可以在服務(wù)器與客戶端位于不同時(shí)區(qū)時(shí)正確處理日期和時(shí)間數(shù)據(jù)。
Qt Test
測(cè)試作者現(xiàn)在可以讓失敗或跳過的測(cè)試拋出異常,從而更容易編寫使用子例程的測(cè)試。超時(shí)宏現(xiàn)在可接受std::chrono字面量,從而使測(cè)試代碼更具可讀性。
Qt WebEngine
新的QWebEngineFrame類添加了特定于框架的API,例如在特定框架上打印或運(yùn)行JavaScript。QWebEngineClientHints可讓應(yīng)用程序能夠更好地控制瀏覽器標(biāo)識(shí),而QWebEnginePermission則可輕松管理新舊網(wǎng)站權(quán)限。
Qt Widget
我們對(duì)高DPI顯示器的渲染代碼進(jìn)行了多項(xiàng)改進(jìn),使基于Widget的應(yīng)用程序在所有屏幕類型上都能清晰顯示。
工具
我們的文檔生成器QDoc與 Clang互連,現(xiàn)在要求最低Clang 17。它已從基于C的 API 轉(zhuǎn)向基于C++的API。這提高了我們?cè)赒Doc中實(shí)現(xiàn)對(duì)新C++語言特性支持的能力。此外,QDoc還擴(kuò)展了一系列新命令。具體細(xì)節(jié)請(qǐng)查看發(fā)布說明。
QML Language Server現(xiàn)在提供語義語法高亮顯示,改進(jìn)了對(duì)JavaScript語言的支持,可為Quick類型生成片段,并提供文檔提示。
立即升級(jí)
有了這些強(qiáng)大的新功能和性能改進(jìn),Qt 6.8將繼續(xù)賦能開發(fā)者在各種平臺(tái)上構(gòu)建響應(yīng)迅速、視覺上引人入勝和媒體豐富的應(yīng)用程序。我要感謝所有幫助實(shí)現(xiàn)Qt 6.8的貢獻(xiàn)者。您可以在發(fā)布說明的末尾找到為Qt源代碼提供補(bǔ)丁的所有社區(qū)成員的完整列表。特別感謝所有通過報(bào)告錯(cuò)誤、向我們提供反饋和貢獻(xiàn),或告訴我們您使用案例來幫助 改進(jìn)Qt的各位。最后但同樣重要的是,我要感謝所有參與發(fā)布的人員!
我們迫不及待地想看到您如何利用最新版本的Qt創(chuàng)建下一代應(yīng)用程序。立即升級(jí)到Qt 6.8,讓您的項(xiàng)目更上一層樓!
本文轉(zhuǎn)自公眾號(hào)“Qt軟件”
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
關(guān)于億道電子
上海億道電子技術(shù)有限公司是國(guó)內(nèi)資深的研發(fā)工具軟件提供商,公司成立于2009年,面向中國(guó)廣大的制造業(yè)客戶提供研發(fā)、設(shè)計(jì)、管理過程中使用的各種軟件開發(fā)工具,致力于幫助客戶提高研發(fā)管理效率、縮短產(chǎn)品設(shè)計(jì)周期,提升產(chǎn)品可靠性。
十多年來,先后與ARM、Altium、Ansys、QT、Green Hills、Minitab、EPLAN、QA Systems、OpenText、Visu-IT、HighTec、PLS、Ashling、MSC Software、Autodesk、Source Insight、IncrediBuild、Lauterbach、Adobe、Testplant、TeamEDA等多家全球知名公司建立戰(zhàn)略合作伙伴關(guān)系,并作為他們?cè)谥袊?guó)區(qū)的主要分銷合作伙伴服務(wù)了數(shù)千家中國(guó)本土客戶,為客戶提供從芯片級(jí)開發(fā)工具、EDA設(shè)計(jì)工具、軟件編譯以及測(cè)試工具、結(jié)構(gòu)設(shè)計(jì)工具、仿真工具、電氣設(shè)計(jì)工具、以及嵌入式GUI工具等等。億道電子憑借多年的經(jīng)驗(yàn)積累,真正的幫助客戶實(shí)現(xiàn)了讓研發(fā)更簡(jiǎn)單、更可靠、更高效的目標(biāo)。
歡迎關(guān)注“億道電子”公眾號(hào)
了解更多研發(fā)工具軟件知識(shí)