Qt 5.4发布了
原文链接:Lars Knoll - Qt 5.4 released
今天我们很高兴地宣布Qt 5.4发布了,您可以从qt.io下载。和Qt 5.4一起,我们也发布了Qt Creator 3.3,还为嵌入式Linux和嵌入式Android更新了Qt设备创建(Qt for device creation)。
让我们先从Qt 5.4开始。这次发布的一个主要聚焦领域是围绕Web技术,我们有许多新的东西要在这里介绍。
HTML5和Web技术在过去几年中变得越来越重要。我们花了去年一年为Qt开发一个全新的Web作品。
Qt WebEngine模块是我们在Qt中采用Chromium的Web引擎长期研发项目的成果。Qt 5.4完整支持大多数正在使用的桌面和嵌入式平台,Qt WebEngine为您提供了易用的API来嵌入Web内容到基于Qt Widgets和Qt Quick的应用中。
新的Qt WebChannel模块为QML/C++和HTML/Javascript之间提供了一个简单易用的桥梁。这使创建使用Qt和Web技术的混合应用成为可能。这两方面通过在Web环境中暴露QObject来通信。这个模块不仅能够和Qt WebEngine良好工作,还支持任何其他支持Web套接字的浏览器引擎。
作为三方组件,Qt 5.4引入了一个叫做Qt WebView的新模块的技术预览版。在不需要整个Qt WebEngine或因基础系统的限制不能够使用的情况下,Qt WebView模块提供了更有限的API来嵌入Web浏览器作为基础系统的原生浏览器。在Qt 5.4中,Qt WebView模块支持iOS和Android。
连同在Qt 5.3中就引入的Qt WebSockets模块一起,Qt现在为许多最新Web技术提供了非常好的支持,这使得和Web内容交互变得很容易。Qt WebEngine和Qt Webview使得嵌入HTML5更加容易。Qt WebChannel在Qt和HTML5之间创建了混合应用必须的通道, Qt WebSockets允许Qt和许多Web服务间的简便通信。
Qt 5.4仍然包含了旧的Qt WebKit模块。Qt WebKit仍然被支持,但是在Qt 5.4中我们认为这个模块已经完成了,所以不会有新功能添加。我们也计划在将来的发布中废除它,因为新的Qt WebEngine提供了我们需要的东西。在大多数用例中,从Qt WebKit向Qt WebEngine的迁移是相当简单的。 如果您正开始一个新的需要Web的项目,我们建议您使用Qt WebEngine。
Qt 5.4的第二个大的新特性是我们的跨平台故事的继续完善,Qt完整支持Windows Runtime。Windows Runtime版Qt在5.3中作为Beta版支持,现在到达了作为Qt完全支持的状态。使用Qt Windows Runtime版,您可以为Windows应用商店创建应用,包括Windows Phone 8.1或更新版本,Windows 8.1或更新版本。
这个移植完成了我们跨平台故事,Qt现在支持所有相关桌面、嵌入式和移动操作系统。
Qt 5.4也带来了很多新的特性和改进。焦点之一是围绕着图形。使用Qt 5.4,现在我们为桌面平台引入了更好的高分辨率显示支持,但在Qt 5.4中仍然是是实验性的支持。如果您有兴趣,可以查看概览文档。
因为没有良好的驱动支持,OpenGL在Windows上的支持在一些情况下有些问题。为了解决这个问题,现在Qt有了在应用程序启动时动态选择OpenGL实现的能力。Qt可以在原生OpenGL驱动、ANGLE的OpenGL ES 2.0实现转换到DirectX或纯软件光栅器之间选择。
Qt Data Visulaization已经更新到1.2版本,包括了附加的特性,像对表面图的立体渲染(volume rendering)和纹理(texture)支持,以及性能改进。Qt Chart更新到了2.0版本,包括了更好的Qt 5模块化、二进制包和小幅改进。
其它图形方面的改进是新的QOpenGLWidget类,替换了旧的来自Qt 4的QGLWidget类,这样我们就废弃旧的Qt OpenGL模块,所有相关的功能都可以在Qt Gui中找到。OpenGLContext现在能够包装原生上下文。您可以使用新的QQuickRenderControl来渲染Qt Quick场景到离屏缓冲区(offscreen buffer)。更多详情请查看这篇博文。
最终,Qt 5.4包含了一个新的Qt Canvas3D模块的技术预览版,为Qt Quick实现了类似WebGL的API。它使得在Qt Quick中使用WebGL的Javascript代码变得非常容易。
在Qt 5.4中有许多我们必须类出来的新东西。在继续之前,请看我们的Qt 5.4亮点视频。
其它大量的新特性也进入到了Qt 5.4中,在本文中,我将只提及它们中的一部分。
现在,Qt支持低功耗蓝牙(Bluetooth Low Energy)。在Linux平台是使用BlueZ,对于其它平台的支持会在Qt后续版本中引入。低功耗蓝牙使得和许多现代蓝牙设备通信成为可能,例如可穿戴设备。
对于Android,我们现在有了原生外观的Qt Quick控件,还有更小的部署包,和更快的启动速度。对于iOS和Mac OS X,我们支持最新的操作系统版本,XCode 6和需要新的代码签名风格来发布应用到应用商店。我们非常努力地修复了在Mac OS X 10.10上新风格相关的问题。
Qt Qml现在带来了Qt 状态机的支持,通过导入新的QtQml.StateMachine,QtCore也增加了新的QtStorageInfo类,为您提供了关于挂载的设备和卷信息。
Qt Quick控件带来了全新的外观精美的“平面样式(flat sytle)”,它可以在所有平台使用。
Qt 5.4也带来了全新版本的Qt Creator,Qt Creator 3.3。关于更新的更多详情,请查看我们的另一篇博文。
今天,我们也为设备创建发布了新的版本的开发包。
这里介绍下包含在这次发布中的新特性:
现在我们初步支持在Wayland上运行Qt,在基于i.MX6的设备上,使用Weston compositor,包括对视频和Qt WebEngine的支持。
我们增加了新的B2Qt工具模块,很容易从C++和QML访问设备特定的配置,例如显示屏背光,主机名或电源状态。现在正式支持B2Qt Wi-Fi模块,使得可以很容易配置Wi-Fi网络。
除了这些新特性之外,我们也增加了大量改进:
在此版本中,我们也添加了新的硬件参考平台,包括低端配置的无GPU的Freescale Vybrid。Qt设备创建支持的完整参考硬件列表可以在这篇文档中找到。
对于我们的嵌入式用户,另一个很棒的新特性是新的Qt Quick 2D Renderer模块。这个新的商业附加组件在没有OpenGL硬件加速的嵌入式设备上使用Qt Quick。这个新的Qt Quick2DRenderer模块渲染多数的Qt Quick,通过像DirectFB或Direct2D使用纯软件光栅处理或2D硬件加速。这个模块支持除了OpenGL着色器(shaders)和粒子(particles)之外的所有Qt Quick特性。
这使得在低端设备上创建现代感观的基于Qt Quick的用户界面成为可能。另外,在含有和没有OpenGL的跨设备的设备组合上使用Qt Quick API的能力,极大的减少了您需要编写和维护UI代码的数量。
为了演示Qt Quick 2D Renderer的能力,我们为Qt软件栈添加了Toradex Colibri VF50和VF61设备作为参考硬件,表明我们能够运行在Freescale Vybrid SoCs上。
和早前声明的一样,Qt 5.4的开源版本也适用与LGPLv3许可协议。新的许可协议选项允许我们The Qt Company不在商业方面作出妥协的情况下为整个Qt生态系统推出更多增值组件。也有助于保护第三方开发者的自由,免于消费设备锁定的伤害,防止Tivozation(译者注:http://en.wikipedia.org/wiki/Tivoization和https://www.gnu.org/philosophy/open-source-misses-the-point.html)以及其它不合理的使用。
在Qt 5.4中,一些新的模块仅适用于GPL/LGPLv3或者商业许可协议条款。这些模块包括新的Qt WebEngine,Qt WebView的技术预览版和Qt Canvas 3D。Android样式风格只在商业或LGPLv3许可协议下可用。您可以在这里找到更多详细信息。
Qt 5.4增加了大量的新功能和改进。如果没有为Qt做贡献的伟大伙伴和开发者社区的帮助,其中有些将不会完成,然而他们并不是The Qt Company的员工。
尽管我不能在里这提及到每一个人,我仍然要列举几个。感谢我们的Qt服务伙伴KDAB,他们一如既往的是Qt的第二大贡献者,在这次发布中,特别感谢Milian Wolf为Qt WebChannel所做的工作。我也要感谢来自Audiocodes的Orgad Shaneh对Qt Creator的持续帮助和参与,感谢来自Intel的Thiago Macieira的长期参与。我还要感谢来自Ford的Brett Stottlemyer贡献了新的QML状态机框架以及Ivan Komissarov贡献了新的QStorageInfo类。
请大家一定要试试Qt 5.4,www.qt.io/download. 尽情享用吧!