【Qt】New Features in Qt 5.15

00. 目录

01. 概述

该文章翻译至官方网站,所有新特性都是基于在现有模块中。

原文链接:New Features in Qt 5.15

02. 新功能(within existing modules)

Qt 3D

  • 改进的性能分析和故障排除支持。
  • QSortPolicy添加"统一"模式以控制是否需要执行统一缩小。
  • QMouseDevice添加updateAxesContinuously属性。
  • OpenGL Renderer改为插件隔离。

Qt Core

  • 新增QFile::moveToTrash接口,用于将文件移动到Windows,macOS和Linux桌面上的垃圾箱/回收站(实现 freedesktop.org规范)。
  • 新增QFileInfo::isJunction接口,用于获取文件系统是否为Windows NTFS结点。
  • std::function支持创建QRunnable,而不必将QRunnable子类化。
  • QThreadPool的start和tryStart支持使用std::function,因此也可以使用匿名lambda函数作为参数。
  • 添加了静态模板QDebug::toString函数,该函数将给定的对象传输到对字符串进行操作的QDebug实例中,然后返回该字符串。这在需要对象的文本表示形式进行调试但不能使用operator<<的情况下很有用,例如将失败消息传递给QVERIFY2时。

Qt GUI

  • QColorSpace设置器现在可以在无效的色彩空间上进行操作,使得可以独立设置基色和传递函数。
  • 优化了QImage缩放和转换操作都是多线程。

Qt 位置

  • 更新了3rdparty库快捷方式。
  • Map *ObjectPrivateQSG移植到基于着色器的投影几何体。
  • Map.gitViewportToMapItems添加了可选参数。

Qt 多媒体

  • 不推荐使用QMediaService和QMediaControl,及其所有插件API。
  • 引入了GStreamer的重播功能。
  • 引入了多面渲染。
  • 引入了QVideoWidget::videoSurface(), QGraphicsVideoItem::videoSurface()QDeclarativeVideoOutput::videoSurface()
  • 为MediaPlayer QML元素引入了videoOutput属性。
  • 引入了QVideoFrame::image()
  • 为GStreamer Camerabin添加了notify::zoomnotify::max-zoom的使用。

Qt 网络

  • OpenSSL后端现在支持TLS 1.3协议引入的新会话票证机制。
  • 现在可以为QNetworkRequest和QNetworkAccessManager设置下载和上传超时。
  • 支持的最低OpenSSL版本是1.1。

Qt QML

  • 引入了内联组件(能够在同一文件中声明多个QML组件)。
  • 引入了一些所需的属性。
  • 添加了一种向QML注册类型的声明方式。
  • qmllint现在对代码有更智能的分析,并会警告不推荐使用的QML功能。
  • 添加了QML格式化工具,该工具可以根据QML编码约定自动格式化任何QML文件。
  • 添加了对Nullish合并运算符(??)的支持。
  • 在图像节点上添加了colorspace属性,从而可以读取颜色空间并将图像转换为特定的颜色空间。

Qt Quick

  • 添加了PathText类型,该类型可以与Qt Quick Shapes一起使用,以将文本呈现为几何图形,而不是基于距离字段或预渲染的纹理。这对于渲染大字体会很有用,否则会占用大量纹理内存。
  • 添加了Image.sourceClipRect用于指定剪切区域,以请求图像插件渲染图像源的一部分。
  • 向指示器添加了cursorShape属性。当活动状态为true时,大多数指示器(例如DragHandler)都会更改光标。当鼠标悬停在包含HoverHandler的Item上时,HoverHandler将对其进行更改。
  • 现在,独立于图形API的渲染架构的可选预览也支持iOS上的Metal。

Qt Quick Controls 2

  • 添加了HorizontalHeaderView和VerticalHeaderView以在TableView中显示标题数据。支持轻拂同步,以及default, fusion, imagine, material, 和universal的委托样式。
  • 向ComboBox添加了selectTextByMouse属性。

Qt SerialBus

  • 向VectorCAN插件添加了CAN FD支持。

Qt WebEngine

  • 更新为基于Chromium 80
  • 切换到沙盒网络服务。
  • 用于读取页面/视图的子进程ID的新API。
  • 添加WebEngineHistory::clear方法。

Qt WebSockets

  • 添加了公共API来设置最大帧大小和消息大小。

QDoc

  • QDoc现在可以生成DocBook。
  • QDoc现在为C++类和函数模板参数生成输出。
  • 现在,QDoc会为作用域枚举(枚举类)生成正确的输出。

03. 平台变更

Android

  • 默认情况下,使用Android的本机文件对话框进行打开(文件,多个文件,目录)和保存操作。
  • 将minSdkVersion和targetSdkVersion从AndroidManifest.xml移动到build.gradle(QTBUG-70817)。
  • 在Android(QTBUG-80717,QTBUG-80716)上修复一些示例。
  • 改善所有Android文档页面(QTBUG-80390)。
  • 添加了Qt Android Extras示例:JNI Messenger。

Wayland

  • 在客户端为Vulkan引入了实验支持。

嵌入式Linux(eglfs)

  • 在基于NXP i.MX8的设备上通过VK_KHR_display添加了对Vulkan的支持。(在eglfs_viv后端中)
  • 技术预览:支持在Direct3D,Metal和Vulkan之上运行Qt Quick(2D)新的渲染硬件接口抽象层使您可以在其他3D图形API上运行Qt Quick应用程序。

04. 新模块

Qt Quick 3D

  • 后处理效果。
  • 自定义几何API(C ++网格)。
  • 用于节点旋转的四元数API。
    ( 右手坐标系(以前为右或左)。
  • 在3D场景支持中改进了Qt Quick 2D。
  • 性能提升
  • 聚光灯支持

Qt Lottie

  • 适用于After Effects动画的Bodymovin JSON渲染器。
  • 增加了性能和稳定性。

05. 技术预览模块

  • Qt PDF
    • 基于Qt WebEngine的共享Pdfium版本。
    • 在同一平台上可用Qt WebEngine以及iOS可用。

06. Qt自动化

自动化模块仅收到错误修复,没有添加任何值得注意的功能。

07. 即将弃用的模块

为了帮助准备过渡到Qt 6,在Qt 5.15版本中已将许多将从Qt 6.0中删除的类和成员函数标记为已弃用。除非您在项目中定义QT_NO_DEPRECATED_WARNINGS,否则对于使用任何不推荐使用的API的代码,您都会收到编译器警告。这些警告将说明要改用哪个API。要完全禁用所有不推荐使用的API,请使用QT_DISABLE_DEPRECATED_BEFORE宏。

以下模块是Qt 5.15发行版的一部分,但不推荐使用,并考虑在后续的Qt发行版中删除:

  • Qt脚本
  • Qt快速控件1
  • Qt XML模式

08. 长期支持

对于商业许可证持有者,Qt 5.15 LTS在标准支持下获得3年的支持,此后还可以获得扩展支持(额外收费)。
对于开源用户,Qt 5.15与其他任何Qt功能发行版(在发行下一个版本之前,修补程序发行版一样)。

友情提示:

09. 附录

9.1 New Features in Qt 5.15

网址:New Features in Qt 5.15

posted @ 2021-03-13 11:27  沧海一笑_DJ  阅读(252)  评论(0编辑  收藏  举报