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以来各个版本的一些变化,供网友们参考,有什么疑问或者技术问题,能够联系大吉一块儿讨论。





相关文章
相关标签/搜索