00. 目录
文章目录
01. Qt5.15前言
本文翻译自:Qt 5.15 LTS Released
原文作者:Lars Knoll Qt公司开源项目维护官
校审:于海朋
我很高兴地宣布Qt 5.15 LTS(长期支持版本)正式发布了。Qt 5.15将是Qt 5系列的最后一个新特性版本。因此,它有点特殊,为下一个主要版本Qt 6做了大量准备工作。Qt 5.15将一如既往地支持所有用户,同时为所有商业许可证用户提供为期三年的长周期支持,包括全新的Qt for Small Business。三年支持期结束后客户可以选择延长支持。
作为Qt 5系列的最后版本,我们希望确保Qt 5.15是一个优秀的版本,您可以轻松地将其升级到正在进行的项目中。它与以前的Qt 5版本一样是完全向后兼容的。Qt 5.15在修复bug方面也做了大量工作,是我们在Qt 5系列中最好、最稳定的版本。
Qt 5.15也是通向Qt 6的垫脚石。虽然Qt 6将在Qt的基础上做出一些实质性的改变,但我们仍试图尽可能简单地将代码库从Qt 5迁移到Qt 6。为实现这一转变,我们标记了许多将在Qt 6中废弃的功能。在5.15中启用和修复关于废弃功能的警告,能够使代码库迁移到Qt 6上更容易。
02. 3D图形抽象API
最重要的变化可能发生在图形方面。很多变化都是在后台进行的,用户并不能立即看到它们。在过去的一年中,我们一直致力于图形渲染堆栈架构的彻底改造。这个升级将成为Qt 6的核心,并且在Qt 5.15中已经可以选择性启用。
在Qt 5中我们假设可以使用OpenGL作为3D图形的跨平台API,并以此构建了图形堆栈。在过去的几年里,业界发生了巨大的变化,使得开发和部署使用3D图形的应用程序变得更加复杂。苹果已经开始着手开发Metal,并且前一段时间在macOS和iOS上弃用了OpenGL。Khronos集团一直致力于用Vulkan取代OpenGL, 并将其推广到Android和Linux。微软的Direct 3D 12是一个完全重写的API,完全不兼容旧的Direct 3D版本。与此同时,OpenGL在相当长的一段时间内都不会消失。
基于Qt的跨平台承诺,我们希望有一个适用于所有平台的解决方案。为了实现这一点,我们在一年多以前就开始为所有这些API开发一个抽象层。我们称之为Qt渲染硬件接口(RHI),可用于在Direct 3D、Metal、Vulkan和OpenGL上运行Qt Quick应用程序。它在Qt 5.15中以技术预览形式被支持,您可以通过一个环境变量启用Qt RHI来使用它。在Qt 6中,这一层将成为Qt架构的核心部分。
有关RHI的更多细节,请查看Laszlo关于这个主题的系列博客文章。
03. Qt Quick 3D
Qt 5.15的另一个重要的新特性也与图形有关。在Qt 5.0时代,我们引入Qt Quick作为Qt架构的基石。它的重点是简化创建动画、触摸式的2D用户界面。现在Qt 5.15完全支持Qt Quick 3D,扩展了易于使用的理念,将3D内容集成到基于Qt Quick的应用程序中。借助Qt Quick 3D,您可以轻松地在QML中定义3D场景,定义网格、光源和材质,并将所有内容与2D UI无缝结合。
之前,可能需要使用不同的技术(使用Qt 3D、Qt 3D Studio或raw OpenGL)分别开发2D和3D部件的场景,您现在可以轻松拥有一个集成解决方案。
我们开发了一个很酷的演示,你可以用它测试Qt Quick 3D 5.15的不同功能,比如改变灯光类型和数量,模型复杂性和数量,纹理大小,材质,抗锯齿方法和质量等等。这样,您就可以快速地测试,例如,绘制的模型数量对硬件性能的影响是否大于模型中的三角形数量。
Qt Quick 3D在Qt 5.14中作为技术预览版引入。Qt 5.15作为完全支持的版本利用了许多额外特性,比如支持后期处理效果,一个用于自定义几何图形的全新C++ API,一个用于旋转的基于四元数的API,以及对聚光灯的支持。现在,由于大量的幕后工作,您可以更容易地在3D场景中使用2D Qt Quick并获得更好的总体性能。
04. Qt Design Studio 1.5
Qt Quick 3D添加了大量选项来创建酷炫的新应用程序,其中包括用户界面中的2D和3D元素。如您所知,我们已经投入了大量的工作来让设计师通过Qt Design Studio获得所有这些功能。正因为如此,我非常高兴地宣布今天同时发布的Qt Design Studio 1.5也支持Qt Quick 3D的所有功能。
05. Qt QML
在Qt QML中,我们专注于准备Qt 6,这为Qt 5.15带来了一系列有用的新特性。
QML组件现在有了新的概念:“required”属性。这些属性必须由用户进行设置。现在可以在QML文件中内联指定组件。我们还添加了一种新的声明式注册类型。
我们改进了qmllint工具,能更好地向您预警有关QML代码库中可能出现的问题。我们还添加了新的qmlformat工具,可以根据我们的QML编码风格指南帮助您格式化QML文件。
最后,我们还致力于确保QML在Qt for MCUs和Qt 5.15中是兼容的。
06. Qt Quick
Qt Quick中还出现了一些新特性。我们为Image元素添加了对颜色空间的支持,并为Qt Quick Shapes添加了一个新的PathText元素。指针处理程序有一个新的cursorShape属性,用于设置桌面系统上鼠标光标的形状,新的HeaderView项使向TableView添加水平或垂直表头更为容易。
07. 其它改进
我们的桌面用户会很高兴发现Qt将更好地支持客户端/自定义窗口装饰,允许用户定义自己的窗口装饰,并将自定义内容放入窗口标题栏空间。
Qt Lottie是我们在Qt 5.14中作为技术预览版引入的模块,现已得到完全支持。该模块允许用户将After Effects动画集成到基于Qt的应用程序中。
Qt WebEngine已经从Qt 5.14中的Chromium 77更新到Chromium 80,并提供了Chromium更新的所有新特性。
Qt 3D获得了更好的性能分析和调试支持,以及增加了一些较小的新特性。
Qt Multimedia现在支持渲染到多个表面上。在Qt GUI中,现在图像缩放和转换例程在许多用例中都是多线程的。
Qt Network现在支持TLS 1.3 session tickets和可配置的超时操作。
在QtCore中,QRunnable和QThreadPool现在可以与std::函数一起工作;并且新的QFile::moveToTrash()方法可以跨平台删除文件。
最后,我们还在Android上添加了对本地文件对话框的支持。
08. 支持周期
现在所有用户都可以使用Qt 5.15。对于我们的开源用户,在Qt 6发布之前,将以与其他普通Qt版本相同的方式得到支持。对于商业版客户,Qt 5.15拥有三年的长周期支持(LTS),定期发布除Qt 6之外的bug修复版本。
请记得Qt 5.9已在5月31日停止支持。虽然我们已经竭尽全力确保升级到Qt 5.15的便捷性,但是如果需要,您仍可选择延长支持,如任何问题请与我们联系。
最后,我要感谢为这次发布做出贡献的所有人。
希望你会喜欢Qt 5.15!
09. 附录
9.1 Qt中文官网
9.2 Qt微信号
网址:Qt微信号
9.3 Qt软件官方视频账号
网址:Qt软件官方账号
9.4 Qt中国CSDN博客
网址:Qt中国CSDN博客
9.5 Qt 5.15 LTS Released
暂无评论内容