QT5.9 新特性與版本回顧

原文連接:c++

http://blog.qt.io/blog/2017/05/31/qt-5-9-releasedgit

翻譯內容以下,採用的是第三方某在線翻譯軟件,因此有些地方不是太精確,縱然大吉作了必定的調整,可是終究不得完美!
web

    我很高興讓你們知道,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,由於有不少改進,將會對您有很大的好處。api

不少新功能緩存

          即便咱們關注性能和穩定性,咱們仍是設法將更多的新特性添加到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單獨的博客中找到全部的細節。socket

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以來各個版本的一些變化,供網友們參考,有什麼疑問或者技術問題,能夠聯繫大吉一塊兒討論。





相關文章
相關標籤/搜索