几经耽搁,Qt 5.5于本周三正式对外发布。该本版具有着许多的新功能和一些面向Qt5工具包令人兴奋的更新。
以下为官方发布日志的摘译(该日志由诺基亚Qt开发框架首席Qt设计师所撰写):
我很高兴地宣布,Qt 5.5在今天正式发布。在过去的6个月时间里,我们一直努力工作以营造一次超赞的版本发布。
结果是,我们收到了接近1500个报告的Bug,并已经完成修复,以及对我们的整个栈实现了大幅的性能改进。同时还修补了产品在跨平台方面的几个缺陷,让在各个平台的功能更加的平衡和有好,并且优化了诸如多媒体和蓝牙方面的功能。
我们也付出了大量的时间和努力,以确保Windows 10一经微软发布后,Qt 5.5提供对该系统的完美支持。从QT 5.3开始,QT就可以很好地运行在Windows 8上的新WinRT APIs,这让我们很受鼓舞。也由此,我们接下来有信心相信QT 5.5能够完美支持Windows 10,只要能够及时更新Qt 5.5.x就好。
现在,Linux包可在RedHat Enterprise Linux上进行构建,支持更多的Linux发行版(从RHEL 6.6到Ubuntu 15.04)。
大量的工作时间也被投入到了Mac OS X版的QT,我们现在使用苹果的Secure Transport层来启用SSL功能,支持蓝牙和Bluetooth LE,支持Qt WebView和修复了Qt Multimedia方面的大量问题。
简化产品结构
QT 5.5另外一个大的变化是大大简化了产品结构,现在Qt有三个版本:
Qt for Application Development:这是商业版本,允许你在Qt支持的所有桌面和移动平台创建应用。它有着全面的支持和完善商业许可。
Qt for Device Creation:这是第二个商业产品,目标是构建和开发嵌入式设备,并提供大量工具链和其它的一些支持,让你的一切工作变得更加轻松,当然也有着全面的支持和商业许可。
Qt Open Source::这是我们的开源版本,遵循LGPL 2.1/3或者GPL。
产品的更多细节请关注QT的新产品页面:qt.io。
新功能
和往常一样,Qt 5.5捆绑了最新的Qt Creator版本和大量的新功能。我选了一些放在了本篇文章里,如下:
蓝牙
Bluetooth LE API先前已出现在了Qt 5.4技术预览版中,现在是最终版,可全面支持Android、Mac OS X和iOS,又或者是Linux现有的后端上。
图形
由于Qt的root是一个图形化的工具包,我们一直在专注于图形的功能强化。自Qt 2问世就集成了OpenGL,这种做法一直以来相对而言还是比较low的。
在最新的Qt 5.5中,我们有了很大的进步,新增了2个模块(Qt Canva 3D和Qt 3D)来扩展3D APIs,从而完善和改进图形工具包。
Qt Canvas 3D是一个新的模块,可非常轻松地从Qt Quick直接使用WebGL。该模块最先出现在Qt 5.4的技术预览版中,现在它已经非常成熟了,最终作为了Qt frameworks内完全支持的模块。Qt Canvas 3D面向Qt Quick实现了一个WebGL-like API,可被用于较低级WebGL代码或结合JavaScript frameworks(three.js)。
另一个新模块是Qt 3D,是Qt 5.5技术预览版的一部分。不过,此前是作为QT 4问世时的一个库,但现在经过较大的重新的构建,它已经非常适合现代OpenGL的世界。
视频解读:https://youtu.be/S8oVS3onQV0(时长约1分37秒,需科学上网)
Qt 3D对于OpenGL最大的支持改进是让它更容易整合3D内容至Qt应用。该模块还带来了C++和QML APIs。更多细节参见:Qt 3D文档和KDAB博文,及Qt 3D游戏demo。但作为一个技术预览,这个模块仍然有一点粗糙。请大家多多反馈,我们会在Qt 5.6中提供更好的支持和兼容。
在Windows上使用OpenGL一直有一些问题,主要是因为并非所有的驱动都是默认安装,Qt 5.5已经解决了这个问题。
Qt Location
另一个Qt 5.5技术预览版的新模块是Qt Location,增加了mapping、geocoding、routes和places支持。这些可结合现有的Qt Positioning API一起使用,从而提供应用的位置服务。Qt Location还可以支持不同的地图服务商。目前,我们支持Nokia Here、Mapbox和Openstreetmap。更多例子请参见这个文档:http://doc.qt.io/qt-5/qtlocation-examples.html
Qt Quick
QML和JavaScript引擎现在支持JavaScript类型数组。在QT核心,我们还增加了Q_GADGETs的性能和可调用的方法,以及改进Mac OS X、iOS上的Flickable和PinchArea。
The Enterprise Controls已并入Qt Quick Controls,现在也已开源。
Qt Multimedia
在Linux上,我们已经增加了GStreamer 1.0支持和许多其它平台上的bug修复;相机支持有了较大的改进;新增的Video filtering framework非常强大,允许集成frameworks,比如OpenCL或CUDA。
解读视频:https://youtu.be/8KShQnKgnms(时长约56秒)
Qt WebEngine
Qt WebEngine已更新至Chromium 40版本,并获得了新API来管理文件的下载、控制缓存和cookies,及设置。Qt WebChannel现在是内置的,许多的实验性的APIs是公开的并获得了全面的支持。
其它
其他更多的QT 5.5改进和新特性参见wiki。
废弃模块
新功能到来预示这也有一些功能的离开,他们是Qt WebKit、Qt Quick 1和Qt Script。所有这些模块依然在Qt 5.5中可以使用,但是我们强烈建议使用他们的替代品:Qt WebEngine、Qt Quick和 Qt QML,这些能完全兼容JavaScript引擎。大多数情况下,新的模块可提供更多完善的特性和完美的兼容性。
进一步了解Qt 5.5
为了让你更好地了解Qt 5.5,我们已经安排了两场在线研讨会(7月2日和7月3日),在这里可以获取第一手的Qt 5.5新消息,请确保已经注册:http://www.qt.io/webinar-qt5-5/。
Qt World Summit 2015(10月5日至7日,柏林)是一个开放的会议,你可以关注下:http://www.qtworldsummit.com/。
发布日志:http://blog.qt.io/blog/2015/07/01/qt-5-5-released/
下载地址:http://www.qt.io/download/