本文翻译自:Qt 5.12 LTS Released
原文作者:Lars Knoll
校审:Richard Lin
12月6日我们正式发布了Qt 5.12 LTS。这是一个长期支持版本(LTS),我们将提供为期三年的支持。自上一个 LTS版本Qt 5.9.7发布以来,我们一致专注于提升软件质量,修复了2000多个bug,若从Qt 5.6.3算起已经修复了5000多个bug。当然这只是个开始,在即将到来的补丁中,我们将持续提升Qt 5.12的质量。
说到这儿我们必须聊一下Qt性能和内存消耗的改进,特别是在Qt 3D和QML引擎方面。
此外,和其他主要版本一样,Qt 5.12 LTS也包含了许多新特性。下面让我们聊聊其中的几个亮点。
我很高兴地宣布,我们现在完全支持Qt for Python,让Python开发者可以使用各种Qt API。目前,您可测试其技术预览版,正式版本将在Qt 5.12之后不久发布。Qt for Python源自我们多年来一直在qt-project.org上托管的PySide项目。Qt for Python把大多数Qt C++的API开放给Python开发者使用。简而言之:Python开发者现在也可以创建复杂的图形化应用程序和用户界面。您可以在Qt for Python系列博文中找到更多详细信息。
Qt 5.12包含Qt for WebAssembly的第二个技术预览版。使用Qt for WebAssembly,您可以编译Qt应用程序,并可在任何现代Web浏览器中运行。虽然Qt for WebAssembly仍被标记为技术预览版,但它的功能非常强大,我们鼓励您试用一下,并提供反馈。您可以在《Qt for WebAssembly》一文中找到更多相关细节。
除了支持Python和WebAssembly这两个新平台之外,Qt 5.12还完全支持了两个原来的技术预览模块:
Qt Remote Objects使Qt进程之间的通信变得天衣无缝。它允许将QObject的属性,信号和槽暴露给另一个进程,且这两个进程可以运行在不同设备上。
Qt WebGL Streaming Plugin是另一个现在完全支持的插件。此插件允许您通过网络将应用程序的用户界面流式传输到任何现代浏览器。
在新版本中,我们对QML中的JavaScript引擎进行了一些重大改进。它从兼容ECMAScript 5升级到现在完全支持ECMAScript 7。现在可以使用最新的JavaScript了,同时也方便了第三方JavaScript库的集成。现在还支持ECMAScript模块,可以从C ++和QML / JS加载。
我们已经在Qt Quick中添加了另一种Item View,即TableView。它比之前QQC1中的实现更高效,并填补了我们View控件中最后一个重要空白。Qt Quick Controls 2中的许多控件还扩充了新方法和新功能。
Qt 5.11的Pointer Handlers现在改名为Input Handlers,它已经正式发布,并成为Qt Quick中的重要功能。Input Handlers模块简化了复杂触摸交互的设计,过去使用MouseArea或TouchArea模块做复杂交互时非常困难。另外,我们还添加了两个新的Input Handlers用于悬停和拖动项目。
Qt Quick现在支持预生成的distance field textures。这些纹理包含在字形(glyph)中,并用于在Qt Quick中渲染文本,在编译时预生成它们有助于提高应用程序启动性能,尤其是在低端嵌入式设备上。
Qt Core获得了对CBOR(简明二进制对象表示)的支持,这是一种类似于JSON的二进制格式,但它允许更多的数据类型和灵活性。
我们改进了QRegularExpression以支持通配符匹配,我们现在可以弃用旧的QRegExp类了。
在Qt Network中,我们添加了DTLS over UDP的支持。在macOS和iOS上,我们现在通过TransportSecurity后端,可以支持ALPN和HTTP / 2,并且我们在通用SSL后端中添加了PKCS#8支持。
在Windows上,我们现在支持Windows UI自动化,允许基于Qt的UWP应用程序与各种可用的可编程的UI控件工具进行交互。我们使用统一的Windows Pointer Input Messages(在Windows 8或更高版本中支持)替换了平板电脑、触摸屏、触摸板或鼠标中的输入实现。现在新增一些硬件的支持,如MS Surface系列中的screen digitizer,而不再需要定制的驱动。
我们为QGradient添加了许多预定义的渐变(参考https://webgradients.com/)。QImage支持RGBA64图像格式,每个颜色通道16位。这些信息可以从PNG或TIFF的文件中读取,并上传到OpenGL或从OpenGL中获取。
最后,我们还修复了Qt Widgets中的大量bug。
Virtual keyboard现在支持13种额外的键盘布局以及MyScript手写识别功能。它现在带有一个公共扩展API,允许您定义自己的布局。
Qt Location现在包含一个升级的MapBox插件和几个小的API增强功能。我们已将Qt WebEngine升级到Chromium 69,并获得对客户端证书的支持。
Qt for Automation现在更新了新版的KNX和MQTT模块,他们支持最新版本的协议。并且作为技术预览版本,我们添加了对OPC / UA的支持。
另外,即将推出的Qt 3D Studio 2.2 Studio也将基于Qt 5.12 LTS。
最后,Qt 5.12还附带了新版本的Qt Creator。您可以从Qt Creator 4.8.0 released一文中中找到有关其新功能的介绍。
我要感谢为Qt 5.12做出贡献的所有人。特别要感谢KDAB,一直以来都是(除了我们以外)Qt的最大贡献者;Thiago Macieira为维护Qt Core所做的工作;以及Christian Ehrlicher,他为此版本做出了巨大的改变。
那么,接下来就去下载Qt 5.12吧。与往常一样,可以从您的Qt帐户或访问qt.io/cn/download获得它。