本文翻译自:Qt 5.11 released

原文作者: Qt公司CTO兼Qt开源项目维护官Lars Knoll
翻译校审:Richard、Hongfei、Haipeng

5月22日,我们提发布了Qt 5.11。与以往一样,Qt 5.11增加了许多新功能,并修复了许多现有功能的bug。一起来看看这些很酷的新功能吧!

Qt Core 和Qt Network

我们对Qt Core做了许多细节优化。例如,一些工具类新增了引用传值的重载方法;补全了一些函数以保证API与STL的兼容性。我们的Item Model也增加了许多新特性。

Qt Network现在在IOS 上支持ALPN和HTTP / 2协议。在QNetworkRequest中附加一个Http2DirectAttribute,就可直接创建一个HTTP/2连接,而无需初始的协议协商。

Qt Core中的较大更新是对Unicode的支持。QChar、QString、QTextBoundaryFinder和双向文本算法现在完全兼容Unicode 10。

Qt GUI和Qt Widgets

支持Windows上的辅助功能是Qt 5.11的重点改进之一,我们基于Microsoft UI Automation重写了原先在Microsoft Active Accessibility 框架上的代码,从而增强了对Windows辅助功能的支持。

另一项主要工作是改进Windows上窗体样式,以更好支持高DPI显示。Linux上的打印对话框也被改头换面,对所有通用Unix打印系统(CUPS)选项提供了更好的支持。

我们修复了Qt Widgets的多个bug,并在QLineEdit中支持用鼠标快速选择文本。

以上是我们为所有台式机用户所做的更新。

Qt QML

我们为QML引擎做了许多优化,重写了QML的编译管线。新管线大幅提升了性能和可维护性。

新管线总是将QML编译为平台独立的字节码。引擎将这个字节码缓存进.qmlc文件。用户还可以利用qmlcompiler功能提前生成字节码。

新的字节码解释器在性能上有大幅提升。在我们的大多数测试用例中,相比Qt5.10的JIT技术,新的解释器已经能达到其80%到90%的性能。在解释器上层,我们还增加了新的热点JIT。因此在各个方面都可以击败我们旧版JIT技术。

Qt Quick 和 Qt Quick Controls

在Qt Quick方面,我们在Image元素中增加了对加载压缩纹理的支持,并提供.ktx 和.pkm两种容器文件格式。使用这种格式存储的图像文件可以直接被GPU处理。从而帮助减少应用程序的启动时间和内存消耗。

我们对Qt Quick Controls 2增加了许多小功能并修复了不少Bug。例如Buttons的自动重复属性、改进ScrollBars定位支持以及SpinBoxes的样式支持。

Qt Location

我们为Qt Location也做了许多改进。首先,最重要的新功能是实验性地增加了对turn-by-turn导航的支持。其次,Qt Location增加了一套实验性API,用于创建非QQuickItems的Map Object。MapPolyline对象的性能已有很大提升,图层功能现在也可以与Map Item结合使用。此外, Routing和Places对象已使用可扩展的API,添加了全新的WayPoint元素。最后,MapBox插件支持地理编码和Places。

Qt Webengine

按照惯例,我们将Qt Webengine的Chromium版本更新为Chromium 65。此外,我们现在支持嵌入式DevTools,不再需要打开另一个浏览器、可安装的cookie筛选器和配额权限。

Qt for Device Creation

Qt for Device Creation也同时拥有上述所有新功能。我们还一直在改进嵌入式专属的特性。

新功能还包括对基于硬件的图层的支持,目前的技术预览版仅能运行在支持VSP2硬件合成的设备上。该功能可用于诸如视频背景之类的功能,并且有助于提高性能,降低功耗。我们计划在今后的版本中支持更多平台、硬件组合。

我们改进了Qt SerialBus的CAN总线支持。KNX模块也有较大更新。此外,Qt 5.11还增加了一个支持OPC/UA的新模块,后者在Qt 5.11中以技术预览版的形式呈现。

其他改进

新的qdoc利用libclang编译,从而在文档中更好的支持新的C++标准。Qt Serialbus模块和Qt蓝牙模块方面也增强了对CAN总线和BTLE的支持。

Qt 5.11取消了对某些老版编译器和平台的支持,包括MSVC 2013, QNX 6.6和macOS 10.10。

Qt 3D 和 Qt 3D Studio

目前,我们正全力准备第二版Qt 3D Studio。其中包括基于Qt 3D、重写runtime,这会让用户在创建3D用户界面时能更好地集成Qt其他部分。Qt 3D也将有众多改进,包括全新功能、性能改进和Bug修复。Qt 3D Studio 2.0目前还处于测试阶段,我们会尽快推出正式版。

Qt对Webassembly和Python的支持

在Qt for Webassembly方面,我们正填补跨平台的最后一片空白;让用户能够以Web和浏览器为平台运行Qt应用程序。第一版已作为技术预览版发布。

此外,我们也在积极推动对Qt on Python的支持。第一版计划在本月发布。

感谢Qt 社区对我们的支持

Qt 5.11新增了许多新功能,并进行了性能的提升。如果没有那些为Qt贡献新功能、Bug修复、文档建立、示例和Bug报告的公司及个人开发者,我们无法完成这么多工作。要感谢的人实在太多了,在此特别鸣谢英特尔的Thiago Maciera长期以来对Qt Core的维护;合作伙伴basysKom的Jannis Voelker和Frank Meerkötter在OPC/UA上付出的心血;合作伙伴KDAB的Albert Astals Cid对CUPS printing的付出,Sean Harmer和Paul Lemire在Qt 3D上的贡献;还有,那些协助维护Qt各个模块的开发者们。感谢你们!

下载新版本

我们照例将对Qt 5.11提供为期一年的支持。如果您需要更长的支持期,推荐使用长期版Qt 5.9,我们将支持至2020年6月。当然,您可以向Qt公司购买延长服务。我们计划今年11月发布Qt 5.12,这将是一个长期支持的版本。

您可以从您的Qt帐户或www.qt.io/download下载Qt 5.11。希望您喜欢使用这个新版本!

http://blog.qt.io/blog/2018/06/29/overview-new-features-qt-5-11/

Slightly ahead of our planned schedule, we have released Qt 5.11 today. As always, Qt 5.11 comes with quite a few new features as well as many bug fixes to existing functionality. Let’s have a look at some of the cool new features.

Qt Core and Network

A lot of work on small details has happened in Qt Core. As an example, some of our tools classes got new rvalue reference overloads and we filled in some missing methods for better STL compatibility. Our item model has received a couple of new features, for details have a look at this blog post.

In Qt Network, ALPN and thus HTTP/2 negotiation are now supported on iOS. QNetworkRequest gained a Http2DirectAttribute to start an HTTP/2 connection without first negotiating.

One of the larger updates in Qt Core went into our Unicode support. QChar, QString, QTextBoundaryFinder and our algorithm for bidirectional text are now fully compatible with Unicode 10.

Qt GUI and Widgets

A major focus area for Qt 5.11 has been the accessibility support on Windows. It got completely rewritten and is now based on Microsoft UI Automation, not on the old Microsoft Active Accessibility framework, leading to a vastly improved accessibility support on Windows.

Some major work has also gone into improving the widget styles on Windows to better support High-DPI displays. The print dialog on Linux has also received a major overhaul, now featuring much better support for all the CUPS provided options.

Qt Widgets itself has received numerous bug fixes and support for quick text selection by mouse in QLineEdit.

Together, this gives a very nice update for all our Desktop users.

Qt QML

Some larger changes have been happening under the hood of our QML engine. We have completely rewritten the compiler pipeline, that parses and compiles QML. The new pipeline brings some major improvements in performance and maintainability.

The new pipeline always compiles QML to a platform-independent bytecode. The engine will cache this bytecode in .qmlc files. You can also generate the bytecode ahead of time, using the qmlcompiler feature (which is now also available in the open source version).

The new bytecode interpreter has a vastly improved performance over the old version. It reaches around 80-90% of the performance of the JIT in Qt 5.10 in most of our test cases. A new hotspot JIT has been added on top of that, beating our old JIT in pretty much all areas.

For more details, have a look at the separate blog post here.

Qt Quick and Qt Quick Controls

In Qt Quick, we’ve expanded our support for loading compressed textures in the Image element and now support both .ktx and .pkm container file formats. This feature helps cut down on application startup time and memory consumption by storing images in a format that is directly digestible by the GPU. For more details have a look at this blog post.

Qt Quick Controls 2 has received lots of smaller features and bug fixes. Examples are auto-repeat properties for Buttons, better positioning support for ScrollBars and better styling support for SpinBoxes.

Qt Location

Qt Location is also an area where many cool things have been happening. The largest new feature is probably the experimental support for turn-by-turn navigation. But there is more. Qt Location now has an experimental API to create map objects that are not bound to QQuickItems. The performance of MapPolyline objects has seen large improvements and layers are now working in combination with Map items. In addition, we made the Routing and Places API extensible and added a new WayPoint element. Finally, the MapBox plugin gained support for geocoding and Places.

Qt Webengine

As has become standard in our feature releases, we’ve updated the Chromium version underneath Qt Webengine to Chromium 65. In addition, we now support embedded DevTools without requiring the use of a separate browser, an installable cookie filter and quota permissions.

Qt for Device Creation

All new functionality mentioned above is of course also available in Qt for Device Creation. In addition, we’ve been working on improving some embedded-specific features.

One new feature here is support for hardware-based graphics layers, currently available as a Technology Preview for platforms supporting VSP2 hardware compositing. This can be used for features such as Video underlays and helps improve performance and reduce power consumption. We are aiming to extend the support to more platforms and hardware combinations in future releases.

Qt SerialBus has received improvements to its CAN Bus support. The KNX module has received some larger updates. In addition, Qt 5.11 will feature a new module that adds support for OPC/UA. This module is available as a Technology Preview in Qt 5.11.

Other items

qdoc now uses libclang to parse C++ giving us much better support for modern C++ in our documentation. Qt Serialbus and Bluetooth have now improved support for CAN bus and BTLE.

With Qt 5.11, we have also removed support for some older compilers and platforms. MSVC 2013, QNX 6.6 and macOS 10.10 are no longer supported.

Qt 3D and Qt 3D Studio

We are working hard to get the second release of Qt 3D Studio ready for you. This second release comes with a fully rewritten runtime, that’ll be based on top of Qt 3D. This will give all of you a better and deeper integration into the rest of Qt when using Qt 3D Studio to create 3D user interfaces.  With this work, Qt 3D has also received numerous new features, performance improvements, and bug fixes. Qt 3D Studio 2.0 is currently in beta, and we are working hard to get the final release out within the next few weeks.

Qt for Webassembly and Python

With Qt for Webassembly, we are working towards filling the last large gap in our cross-platform story, allowing our users to target the web and browsers as a platform for Qt applications. The first version has been released as a Technology preview today, please check out the separate blog post for further details.

In addition, to the above, we are actively working on supporting Qt on Python . The first release of it is planned for June, and we’ll keep you posted with more details.

Thanks to the Qt Community

Qt 5.11 adds a lot of new functionality and improvements. Some of them would not have been possible without the help of the great community of companies and people that contribute to Qt by contributing new functionality, bug fixes, documentation, examples or bug reports. There are too many people to mention everybody in detail, but I’d like to especially thank Thiago Maciera from Intel for his ongoing work on maintaining Qt Core. From our partner basysKom, I’d like to thank Jannis Voelker and Frank Meerkötter for their work on OPC/UA. From our partner KDAB, I’d like to thank Albert Astals Cid for his work on CUPS printing, Sean Harmer and Paul Lemire for their ongoing work on Qt 3D and many others for helping maintain different parts of Qt. Thank you!

Get the new version

As usual, Qt 5.11 will be supported for one year. If you need longer support periods, Qt 5.9 is our current LTS release and will be supported until June 2020. Extended lifetime support can of course always be purchased from The Qt Company if required. Our next release after Qt 5.11, Qt 5.12 is planned for November and will again be a long-term supported release.

You can download Qt 5.11 from your Qt Account or www.qt.io/download. I hope you’ll like and enjoy the new release!

http://blog.qt.io/blog/2018/05/22/qt-5-11-released/

Qt 5.11的QChar、QString、QTextBoundaryFinder和双向文本算法现在完全兼容Unicode 10的更多相关文章

  1. java 11 移除的一些其他内容,更简化的编译运行程序,Unicode 10,移除了不太使用的JavaEE模块和CORBA技术,废除Nashorn javascript引擎,不建议使用Pack200 相关api

    移除的一些其他内容 移除项 移除了com.sun.awt.AWTUtilities 移除了sun.misc.Unsafe.defineClass, 使用java.lang.invoke.MethodH ...

  2. Qt c++11

    借助 Qt 5 的信号槽语法,我们可以将一个对象的信号连接到 Lambda 表达式,例如:     1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // !!! Q ...

  3. 【Qt开发】 数字转QString格式化

    1 想要获得001 002 这样的数字 QString b=QString("%1").arg(i, 3, 10, QChar('0')); QStringList list;   ...

  4. PyQt(Python+Qt)学习随笔:Qt中的部分类型QString、QList和指针、引用在PyQt中的实现方式

    老猿Python博文目录 老猿Python博客地址 在我们查阅Qt的文档资料时,可以看到Qt中的链表使用的是QList,字符串使用的是QString,但老猿在测试时发现这两个类型PyQt不支持,无法找 ...

  5. Qt中int转换成QString

    (1) QString QString::number ( long n, int base = 10 ) [static] examle: long a = 48; QString s = QStr ...

  6. Qt、Vc下用fopen打开中文名字的文件(转换成Unicode后,使用_wfopen函数)

    在做一个Qt项目的时候,完成上传文件时,通过fopen打开文件用来读时发现fopen不能打开中文的文件名,自己在网查找一下,解决方法如下 参考:http://weidaohang.org/wanglu ...

  7. qt designer设置界面是label中文字与文本框对齐设置

    往往在使用 qt designer布置界面时,添加的label和文本框中是直接从工具箱中拖进去的,由于每个控件尺寸大小不一,就会造成label中的文字相对于文本框比较较偏上,看下面未经调整的直接效果 ...

  8. Hibernate(11)_基于外键的双向1对1

    一.基于外键的双向1对1 对于基于外键的1-1关联,其外键可以存放在任意一边,在需要存放外键一端,增加many-to-one元素.为many-to-one元素增加unique="true&q ...

  9. Qt 调试信息、打印信息、输出到文本

    void debug_msg(QVariant msg) { ; QFile file("debug_msg.txt"); ) { i = ; file.open(QFile::W ...

随机推荐

  1. P4555 [国家集训队]最长双回文串(回文树)

    题目描述 顺序和逆序读起来完全一样的串叫做回文串.比如acbca是回文串,而abc不是(abc的顺序为abc,逆序为cba,不相同). 输入长度为 n 的串 S ,求 S 的最长双回文子串 T ,即可 ...

  2. Object-C,文件路径API

    犀利吐槽 1.同样都是"文件和目录操作",java中,就用java.util.File一个类,就封装了很多API,而Object-C搞了这么多类和函数.具体原因,有待分析啊. 2. ...

  3. C++输入流

    输出流基本概念  输出流定义在头文件中.大部分程序都会包含头文件,这个头文件又包含了输入流和输出流头文件.头文件还声明了标准控制台输出流cout.  使用输出流的最简单的方法是使用<<运算 ...

  4. 使用maven安装jar到本地仓库

    mvn install:install-file "-DgroupId={安装的jar包的groupid,可以随意起名}" "-DartifactId={安装jar包的I ...

  5. Ehcache学习总结(2)--Ehcache整合spring配置

    首先需要的maven依赖为: [html] view plain copy <!--ehcache--> <dependency> <groupId>com.goo ...

  6. Android调试命令总结

    转载表明来源:http://blog.csdn.net/yzzst/article/details/47128581 创业要接地气,GOOGLE.亚马逊.微软在中国做的怎么样,全然取决于他们的本地化程 ...

  7. LDAP实现企业异构平台的统一认证

    LDAP实现企业异构平台的统一认证      技术是为应用服务的,没有应用,技术就无用武之地.同样光配置完LDAP服务器没有任何意义,只有把所有需要认证的环节,只有纳入LDAP系统中,才能使它发挥应有 ...

  8. Domino服务器SSL的配置录像

    Domino服务器SSL的配置录像 格式:avi, 大小:25M 时长: 6分钟 本文出自 "李晨光原创技术博客" 博客,转载请与作者联系!

  9. Linux VNC客户端软件VNC Viewer | RealVNC

    Linux很多时候是作为服务器操作系统,如果是桌面系统通常情况会远程管理linux服务器,很多时候通过VNC进行远程管理,这个时候就要在客户端安装VNC客户端软件,VNC Viewer | RealV ...

  10. 【Henu ACM Round#17 D】Hexagons!

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 题目的图吓人. 找下规律就会发现从内到外是1,6,12,18 即1,16,26,36... 即1+6(1+2+3+...) 等差求和 ...