原文鏈接:
http://blog.qt.io/blog/2017/05/31/qt-5-9-released
翻譯內容如下,采用的是第三方某在線翻譯軟件,所以有些地方不是太精確,縱然大吉做了一定的調整,但是終究不得完美!
我很高興讓大家知道,Qt 5.9.0剛剛發布。我們已經投入了大量的工作,使Qt 5.9成為目前為止我們開發的最好的Qt版本。 在Qt 5.9中,我們對性能和穩定性有了強烈的關注。我們已經在Qt中修復了大量的bug,並且我們已經做了大量的工作來改進我們的持續集成系統。這將使我們更容易從5.9開始創建新版本(補丁級別和小版本)。我們還在測試基礎設施中添加了自動性能回歸測試,這將允許我們不斷地監視我們的工作,以提高Qt的性能。Qt Lite中使用的新配置系統已經收到了很多bug修復,也在這里,您可以在單獨的博客文章中找到更多的詳細信息。
長期支持版本我們所做的一個主要決定是使Qt . 5.9成為另一個長期支持的(LTS)版本。之前的LTS版本,Qt 5.6,已經開始顯示它的年齡,許多用戶要求更多的更新版本的Qt,他們可以作為長期運行項目的基礎。 在Qt 5.6之后的一些主要變化包括超過2000個bug修復。另外,我們現在使用一個c++ 11兼容編譯器和Qt,它允許我們實現代碼庫的現代化。我們還添加了Qt Lite配置系統,並對我們的圖形體系結構進行了重要的更新。這是除了在Qt 5.9中實現的所有其他新內容之外,在下面幾節中解釋。作為一項LTS發布,Qt 5.9將在未來三年內得到支持。隨着我們對CI和發布基礎設施的改進,我們確信我們將能夠為Qt 5.9提供更多的更新和補丁級別的版本,而不是Qt 5.6系列。作為一個長期支持的版本,我們將在第一年提供頻繁更新。在第一年之后,我們將逐漸對在分支中發生的變化變得越來越嚴格,因此,在第二和第三年,補丁級別的發布將會稍微少一些。我們將一如承諾繼續支持Qt 5.6,但我們強烈建議每個人開始新項目使用Qt 5.9,因為有很多改進,將會對您有很大的好處。
很多新功能
即使我們關注性能和穩定性,我們還是設法將更多的新特性添加到Qt 5.9中,而不是僅限於我在這個博客中提到的這些。對於更完整的列表,請查看我們wiki中的“新特性”頁面。下面是一些突出顯示的新特性,大吉也會在GK-View,N32926,NUC972,IMX平台,全志平台上第一時間試驗QT5.9,還請多關注大吉博客。
核心和網絡在核心和網絡模塊中添加了一些新特性。從基礎類開始,Qt核心有兩個新類。第一個類qfloat16抽象了16位浮點數,因為這些現在對於使用GPU的api越來越重要。此外,還添加了一個新的QOperatingSystemVersion類,以方便地測試應用程序正在運行的操作系統和版本。Qt網絡獲得了對HSTS(HTTP Strict Transport Security)的支持,通過QNetworkAccessManager提高了HTTPS連接的安全性。我們在Qt NFC的NFC支持已經看到了Android的一些非常好的改進,Qt Web socket現在可以使用外部TCP套接字。在WinRT和藍牙外圍設備上的經典藍牙技術現在都得到了支持。
Qt Gui和3D
Qt GUI獲得了一個着色緩存,它可以緩存OpenGL着色程序的編譯版本,我們還增加了對計算着色器的支持。OpenGL塗料引擎現在也與OpenGL核心配置文件一起工作。Qt 3D已經完成了大量的工作。與我們在Qt 5.8中已經擁有的功能一起,我們現在在Qt 5.9中有了一個很棒的3D引擎。你可以在我們的合作伙伴KDAB單獨的博客中找到所有的細節。
Qt QML和Quick
Qt 5.9改進了QML和JS引擎,已經進行了相當多的工作。我們添加了一個完全重寫的垃圾收集器,提供更好的性能和減少JavaScript堆中的內存碎片。新收集器還提供了更好的基礎,以便在即將到來的Qt版本中進一步增強我們的內存管理。Qt 5.9還提供了全新的QML緩存基礎設施,為我們的用戶提供了類似的好處——就像商業上可用的Qt快速編譯器一樣,但是以一種更加透明的方式。新的基礎設施有兩種操作模式。在默認模式下,緩存基礎結構在應用程序的第一個啟動階段創建QML文件的二進制緩存。您還可以在應用程序構建時預先創建緩存,實現與Qt快速編譯器類似的性能和啟動時間。此外,新的緩存基礎設施不會將您的應用程序綁定到Qt的特定補丁級別版本,因為二進制緩存是版本化的,如果需要,將會重新生成。此外,在引擎中進行了大量工作來提高性能和減少內存消耗,這使得與我們之前的Qt 5.6 LTS版本相比,這是一個重要的升級。Qt Quick現在利用Qt GUI中添加的OpenGL着色緩存,改進了應用程序啟動時間。我們添加了一個圖像提供程序,可以在進程之間共享圖像數據,以及一個新的OpenVG后端,允許它在只有2D硬件加速支持的硬件上運行。Qt快速控制2增加了更多的新功能,請查看單獨的總結博客文章,鏈接到所有的細節和博客文章,在Qt 5.7中添加了Qt快速控制。
Qt位置和定位
對於這個版本,Qt位置已經收到了相當多的新特性。我們增加了對傾斜和旋轉地圖的支持,通過api和觸摸手勢。地圖的疊加已經得到了改進,現在在地圖上添加覆蓋項變得更容易了,我們改進了對地圖上的版權聲明的支持。一個全新的插件添加了對Mapbox的支持,使用他們的OpenGL的地圖渲染引擎。還有一些其他的視覺改進也發生了,比如使用較低分辨率的瓷磚來估計在更高的縮放級別上仍然缺少的瓷磚,直到下載完。在iOS中,我們改進了Qt定位,這樣即使應用程序在后台,它也可以收集數據。
其他模塊
其他許多模塊也已經更新。最明顯的是,Qt Webengine現在使用的是Chromium 56。Qt虛擬鍵盤現在支持外部鍵盤布局和許多其他很酷的新功能,Qt Gamepad已經脫離技術預覽狀態,在Qt 5.9中完全支持。我們還在技術預覽狀態中添加了Qt遠程對象作為一個新模塊。在另一篇博客文章中對Qt Wayland進行了重大的改動。當然,Qt 5.9也有一個全新版本的Qt Creator,有很多新的特性。Qt Quick Designer現在包含一個內置的代碼編輯器,現在我們已經完全重寫了cmake集成。要了解更多細節,請查看單獨的博客。
平台變更
Qt 5.9增加了兩個新平台的支持。它現在支持qnx7.0,QNX操作系統的最新版本。我們還增加了對完整性操作系統的支持,關於這一點的詳細信息在另一個博客文章中再次出現。最后,我們添加了支持編譯Qt的大小優化模式(-操作GCC),為Qt庫和應用程序節省大約5 - 20%的二進制大小。
鳴謝!
最后,我要感謝所有為這次釋放作出貢獻的人們。雖然您可以看到並跟蹤所有通過補丁到我們的git存儲庫的用戶,但許多額外的工作在幕后發生了更多的變化,例如,通過我們的CI和發布基礎設施,或者幫助為web頁面創建抵押品和內容。我希望你們都喜歡這個版本。您可以通過您的Qt帳戶或從我們的下載頁面獲取它。請不要忘記給我們反饋,並編寫一個bug報告(如果您應該找到的話),這樣我們就可以在即將發布的補丁中進一步改進5.9系列。
以上內容是這次發布時,Lars Knoll的博客發布的更新內容,下面我們來簡單的回顧一下,QT5.5以來各種較大的變化:
1.QT.5.5,子版本:QT5.5.0,5.5.1
特色:
最后一個集成webkit版本
最后一個webkit與Qt WebEngine並存的版本
第一次支持Windows10系統
第一次支持藍牙Bluetooth LE API
大吉點評:
qreal存在bug,在配置configure時,如果在./configure時,添加-qreal float 會編譯出錯; 不支持觸摸轉屏,
不支持UI轉屏,是最后一個和QT4版本兼容最好的QT5版本。
測試平台:GK-View,N32926,NUC972,IMX6UL,IMX283, A33,T2,T3,AM335X
2.QT.5.6,子版本:QT5.6.0,5.6.1,5.6.2
特色:
長期支持版本(LTS),支持年限為3年(2016年3月~2019年3月)
第一次支持Can總線,動態庫名稱為:libQt5SerialBus.so
增加高DPI或蘋果的視網膜顯示屏的支持
將基於Chromium 45的Qt WebEngine 完全集成,取消了webkit的集成
大吉點評:
解決了QT5.5中qreal的bug,該版本表現比較穩定,但是該版本放棄了webkit的集成,QtWebEngine又是第一次完全集成,
對於那些依賴這部分進行開發的用戶, 動盪是非常大的,所以實際國內用的人比較少。
測試平台:GK-View,N32926,NUC972,IMX6UL
3.QT5.7,子版本:QT5.7.0,QT5.7.1
特色:
將原來QT一直使用的LGPL2授權修改為LGPL3,關於LGPL授權問題,可以參考以下博文:
https://my.oschina.net/yonghe/blog/377647
第一次要求GCC編譯工具鏈支持C++11,所以編譯QT5.7以后的版本建議使用GCC-4.8.1或更高版本(GCC4.8.1發布於2015年),
具體原因請參考以下博文:
http://blog.csdn.net/haluoluo211/article/details/71141093
QtWebEngine在Chromium 49基礎上重新集成
對樹莓派3和IMX7平台做了支持優化
新增兩個重要類,Qt Charts Qt Data Visualization,需要對數據進行虛擬化和可視化的用戶可以參考這個版本做起,
以下博文是對這兩個類的介紹:
http://blog.csdn.net/czyt1988/article/details/51351495
大吉點評:該版本用戶極少,整個版本更新完全是為了QT5.8,不建議用戶使用。
4.QT5.8,子版本:QT5.8.0
特點:
小幅度調整了QT源碼的編譯體系,以便適應QT Lite
新增QT Lite版本,讓用戶編譯出最小QT庫
完全支持 Wayland 合成器, 語音功能
QtWebEngine在Chromium 53基礎上重新集成
完全支持SCXML
完全支持Can總線和Modbus總線通信
第一次新增網絡簽名認證模塊
大吉點評:該版本仍然不是一個值得使用的版本,所謂的QT Lite,其實不是什么新東西,不知網友是否使用過一個配置,
在配置configure文件時,我們往往通過./configure -qconfig mini 或者./configure -qconfig full來選擇QT的哪些類需要編譯進庫里面,
做過類似嘗試的網友可能都知道,這個選項有時候會編譯出錯或者剛 好裁剪掉了自己APP需要的類,操作起來非常繁雜。那么,
Qt Lite就是干同樣事情的,不同的是Qt Lite提供了更直觀的配置體系,還提供了一個GUI工具,名稱是 Qt Configuration Tool,
目前還沒有國內用戶聲稱拿到了該工具,也許是商業版才有吧,更多關於Qt Lite的信息可以參考以下博文:
http://blog.csdn.net/wsj18808050/article/details/55808104?locationNum=1&fps=1
從編譯角度講,QT5.8的編譯並沒有改變,只是少了或者多了一些模塊,架構上沒有翻天覆地的變化,網友們不用擔心。
QT5.8發布到QT5.9發布,期間時間間隔很短,所以,建議網友都遷移到QT5.9上去,大吉也會第一時間做QT5.9的平台測試。
測試平台:GK-View,N32926,NUC972,IMX6UL,A33
結束語
本文中只是很淺略地對比了QT5.5以來各個版本的一些變化,供網友們參考,有什么疑問或者技術問題,可以聯系大吉一起討論。
