Qt 5.15 LTS(長期支持版本)於2020年5月26日正式發佈。
本文翻譯自:Qt 5.15 LTS Released
原文作者:Lars Knoll Qt公司開源項目維護官
校審:於海朋
我很高興地宣佈Qt 5.15 LTS(長期支持版本)正式發佈了。Qt 5.15將是Qt 5系列的最後一個新特性版本。因此,它有點特殊,為下一個主要版本Qt 6做了大量準備工作。Qt 5.15將一如既往地支持所有用戶,同時為所有商業許可證用戶提供為期三年的長週期支持,包括全新的Qt for Small Business。三年支持期結束後客戶可以選擇延長支持。
作為Qt 5系列的最後版本,我們希望確保Qt 5.15是一個優秀的版本,您可以輕鬆地將其升級到正在進行的項目中。它與以前的Qt 5版本一樣是完全向後兼容的。Qt 5.15在修復bug方面也做了大量工作,是我們在Qt 5系列中最好、最穩定的版本。
Qt 5.15也是通向Qt 6的墊腳石。雖然Qt 6將在Qt的基礎上做出一些實質性的改變,但我們仍試圖儘可能簡單地將代碼庫從Qt 5遷移到Qt 6。為實現這一轉變,我們標記了許多將在Qt 6中廢棄的功能。在5.15中啟用和修復關於廢棄功能的警告,能夠使代碼庫遷移到Qt 6上更容易。
但Qt 5.15也有很多新特性。
3D圖形抽象API
最重要的變化可能發生在圖形方面。很多變化都是在後臺進行的,用戶並不能立即看到它們。在過去的一年中,我們一直致力於圖形渲染堆棧架構的徹底改造。這個升級將成為Qt 6的核心,並且在Qt 5.15中已經可以選擇性啟用。
在Qt 5中我們假設可以使用OpenGL作為3D圖形的跨平臺API,並以此構建了圖形堆棧。在過去的幾年裡,業界發生了巨大的變化,使得開發和部署使用3D圖形的應用程序變得更加複雜。蘋果已經開始著手開發Metal,並且前一段時間在macOS和iOS上棄用了OpenGL。Khronos集團一直致力於用Vulkan取代OpenGL, 並將其推廣到Android和Linux。微軟的Direct 3D 12是一個完全重寫的API,完全不兼容舊的Direct 3D版本。與此同時,OpenGL在相當長的一段時間內都不會消失。
基於Qt的跨平臺承諾,我們希望有一個適用於所有平臺的解決方案。為了實現這一點,我們在一年多以前就開始為所有這些API開發一個抽象層。我們稱之為Qt渲染硬件接口(RHI),可用於在Direct 3D、Metal、Vulkan和OpenGL上運行Qt Quick應用程序。它在Qt 5.15中以技術預覽形式被支持,您可以通過一個環境變量啟用Qt RHI來使用它。在Qt 6中,這一層將成為Qt架構的核心部分。
有關RHI的更多細節,請查看Laszlo關於這個主題的系列博客文章(https://www.qt.io/cn/blog/qt-quick-on-vulkan-metal-direct3d)。
Qt Quick 3D
Qt 5.15的另一個重要的新特性也與圖形有關。在Qt 5.0時代,我們引入Qt Quick作為Qt架構的基石。它的重點是簡化創建動畫、觸摸式的2D用戶界面。現在Qt 5.15完全支持Qt Quick 3D,擴展了易於使用的理念,將3D內容集成到基於Qt Quick的應用程序中。藉助Qt Quick 3D,您可以輕鬆地在QML中定義3D場景,定義網格、光源和材質,並將所有內容與2D UI無縫結合。
之前,可能需要使用不同的技術(使用Qt 3D、Qt 3D Studio或raw OpenGL)分別開發2D和3D部件的場景,您現在可以輕鬆擁有一個集成解決方案。
我們開發了一個很酷的演示,你可以用它測試Qt Quick 3D 5.15的不同功能,比如改變燈光類型和數量,模型複雜性和數量,紋理大小,材質,抗鋸齒方法和質量等等。這樣,您就可以快速地測試,例如,繪製的模型數量對硬件性能的影響是否大於模型中的三角形數量。以下是視頻演示:
播放
暫停
進入全屏
退出全屏
00:00
00:00
重播請
刷新
試試Qt Quick 3D在Qt 5.14中作為技術預覽版引入。Qt 5.15作為完全支持的版本利用了許多額外特性,比如支持後期處理效果,一個用於自定義幾何圖形的全新C++ API,一個用於旋轉的基於四元數的API,以及對聚光燈的支持。現在,由於大量的幕後工作,您可以更容易地在3D場景中使用2D Qt Quick並獲得更好的總體性能。
Qt Design Studio 1.5
Qt Quick 3D添加了大量選項來創建酷炫的新應用程序,其中包括用戶界面中的2D和3D元素。如您所知,我們已經投入了大量的工作來讓設計師通過Qt Design Studio獲得所有這些功能。正因為如此,我非常高興地宣佈今天同時發佈的Qt Design Studio 1.5也支持Qt Quick 3D的所有功能。
Qt QML
在Qt QML中,我們專注於準備Qt 6,這為Qt 5.15帶來了一系列有用的新特性。
QML組件現在有了新的概念:“required”屬性。這些屬性必須由用戶進行設置。現在可以在QML文件中內聯指定組件。我們還添加了一種新的聲明式註冊類型。
我們改進了qmllint工具,能更好地向您預警有關QML代碼庫中可能出現的問題。我們還添加了新的qmlformat工具,可以根據我們的QML編碼風格指南幫助您格式化QML文件。
最後,我們還致力於確保QML在Qt for MCUs和Qt 5.15中是兼容的。
Qt Quick
Qt Quick中還出現了一些新特性。我們為Image元素添加了對顏色空間的支持,併為Qt Quick Shapes添加了一個新的PathText元素。指針處理程序有一個新的cursorShape屬性,用於設置桌面系統上鼠標光標的形狀,新的HeaderView項使向TableView添加水平或垂直表頭更為容易。
其他改進
我們的桌面用戶會很高興發現Qt將更好地支持客戶端/自定義窗口裝飾,允許用戶定義自己的窗口裝飾,並將自定義內容放入窗口標題欄空間。
Qt Lottie是我們在Qt 5.14中作為技術預覽版引入的模塊,現已得到完全支持。該模塊允許用戶將After Effects動畫集成到基於Qt的應用程序中。
Qt WebEngine已經從Qt 5.14中的Chromium 77更新到Chromium 80,並提供了Chromium更新的所有新特性。
Qt 3D獲得了更好的性能分析和調試支持,以及增加了一些較小的新特性。
Qt Multimedia現在支持渲染到多個表面上。在Qt GUI中,現在圖像縮放和轉換例程在許多用例中都是多線程的。
Qt Network現在支持TLS 1.3 session tickets和可配置的超時操作。
在QtCore中,QRunnable和QThreadPool現在可以與std::函數一起工作;並且新的QFile::moveToTrash()方法可以跨平臺刪除文件。
最後,我們還在Android上添加了對本地文件對話框的支持。
支持週期
現在所有用戶都可以使用Qt 5.15。對於我們的開源用戶,在Qt 6發佈之前,將以與其他普通Qt版本相同的方式得到支持。對於商業版客戶,Qt 5.15擁有三年的長週期支持(LTS),定期發佈除Qt 6之外的bug修復版本。
請記得Qt 5.9已在5月31日停止支持。雖然我們已經竭盡全力確保升級到Qt 5.15的便捷性,但是如果需要,您仍可選擇延長支持,如任何問題請與我們聯繫。
最後,我要感謝為這次發佈做出貢獻的所有人。
希望你會喜歡Qt 5.15!
Qt中文官網:www.qt.io/cn
Qt5.15下載地址:
https://download.qt.io/official_releases/qt/5.15/