Back to Blog home

2020年Qt路线图

Published on 星期日 五月 24, 2020 by Richard Lin in Roadmap | Comments

本文翻译自Qt Roadmap for 2020

原文作者:Tuukka Turunen, Qt公司研发高级副总裁

校审:Richard Lin

2020年对Qt来说将是激动人心的一年,因为我们即将发布很多优秀产品。起点是即将发布的Qt 5.15 LTS,预览版本已可用。为了提高工作效率,我们为设计师和开发者提供了许多新功能。随着Qt for MCUs的推出,我们扩展到全新系列的目标平台。最重要的是,我们将在年底发布Qt的下一个重要版本 —— Qt 6。

在深入探讨2020年计划的新项目之前,我要感谢所有Qt开发者的贡献。我们拥有一个贡献者众多的伟大生态系统,多年来提供了许多极有宝贵的贡献,并在未来继续塑造Qt。除了那些代码贡献者,还有许多活跃在Qt项目论坛、邮件列表、以及评审代码和测试Qt开发版本的人们。

从一开始,Qt就是为开发者打造的框架和工具,而且长期以来,Qt也提供了自己的Qt Creator IDE。早期,我们为开发者提供了一个可视化的拖拽式设计工具,并作为产品的一部分,但是最近几年,我们花了很多精力来改善我们为设计师提供的产品。那么,让我们先从设计师工具开始介绍Qt的发展规划。

设计师工具

去年12月我们在Qt Design Studio中发布了在2D设计工具中加入3D设计功能的首个技术预览版本。目前,我们正在完善即将发布的Qt Design Studio 1.5,打磨2D和3D集成设计的体验。在2020年下半年的后续版本中,我们将完善Qt Design Studio统一的2D和3D设计体验和其他功能。

Qt Design Studio 1.5中改进了对Qt Quick 3D的支持,并充分利用了Qt Quick 3D在Qt 5.15 LTS中的所有改进。通过添加停靠widget使得可用性得到了改进。Qt Design Studio的各种视图和控制窗口可以在所有显示器之间自由移动。这使得设计师可以创建一个工作空间,该工作空间能匹配个人偏好和进行中项目的设置。

全新的UI流设计功能带来了一个可视化编辑器,用于创建不同的视图并定义它们之间的交互。这个需求呼声很高的功能即使对于复杂的应用程序也可以直观、快速地创建完整的应用程序设计。Qt Design Studio 1.5的另一个重要且备受推崇的功能是支持仅在设计和开发期间可见的注释。这些注释允许设计师和开发者在设计应用程序时交流。下半年,我们将致力于改善多语言应用程序的设计体验,并支持直接从Qt design Studio生成UI/UX规范文档。

Qt Design Studio已经支持各种内容的导入。Photoshop和Sketch可以直接集成,3D内容可以通过常见的交换格式(如FBX)导入。每个新版本都将进一步改进这些功能。为了扩展可用的图形设计工具集成,我们计划为Adobe XD等新工具提供额外集成。对素材导入格式的改进也在进行中,特别是在创建3D应用程序中常用的格式,如FBX和glTF。除了设计工具集成,还可以集成到外部AR/VR应用程序,如Autodesk VRED,我们正在考虑集成外部模拟应用程序。

开发者工具

Qt开发者也有各种各样的专用工具,我们正在不断改进它们。Qt Creator是我们为开发者提供的主要工具,它汇集了许多其他工具,一般都作为Qt Creator IDE的插件创建。当然,开发者也可以使用我们的设计工具,它们也为那些主要编写代码的人提供了诸多明显的好处。事实上,设计工具是基于Qt Creator的,只是隐藏了那些对设计过程没有价值的部分。因此,让我们深入了解我们正在为Qt Creator和其他开发工具所做的工作。

Clang已经存在很长一段时间了,我们一直在不断地改进对Clang及其附属工具的支持和使用。目前,我们正致力于通过Clang、Qt Creator和其他工具改善对C++的支持。在Creator中一旦可以更新Clang将使C++ 20得到支持。当我们为C/ C++启用基于Clang的解析器时,升级的翻译工具将从Clang的支持中收益。

Qt Creator IDE提供了突显多种语言语法的功能。目前正通过语言服务器协议(LSP)推广对不同语言的支持。对于用户来说,这意味着改进了对Python和QML的支持。对于Qt Creator中的其他项目,我们正在研究简化Qt Creator扩展构建的步骤。这将有助于通过Qt Marketplace创建和提供单独的Qt Creator扩展。

我们将继续在Qt中改进对CMake的支持,并与Kitware合作解决CMake上游需要修复的问题。利用CMake还意味着Qt用户可以从新CMake版本中添加的功能中获益,比如最近发布的CMake 3.17

良好的文档是Qt的基本价值,随着Qt 5.15 LTS的推出,我们将扩展QDoc来生成DocBook,这是一种专用于软件文档的标准化XML格式。该功能是我们开源社区做出宝贵贡献的一个范例。除了不断增强文档内容之外,还有很多进行中的幕后工作,以确保我们的文档在Qt 5.15 LTS、6.0和更高版本中保持世界级水平。

Qt for MCUs

随着越来越多基于微控制器的设备具有显示功能,我们希望进入这一细分市场。在尝试将Qt缩小到所需水平之后,我们意识到这种方法对于大多数常见用例都不可行。为了正确应对这一细分市场,我们开发了Qt for MCUs,并在去年年底发布了第一个完全支持的版本。在2020年,我们将支持新设备和操作系统,并呈现许多重要功能。

Qt for MCUs的核心是一个完全重写的Qt Quick Ultralite图形运行时,具备适用于受限设备的QML功能子集。随着Qt 5.15 LTS和相应Qt for MCUs版本的发布,我们在QML语言层面提供了完全的兼容性。由于Qt Quick Ultralite只支持QML的一个子集,所以兼容性仅限于所支持的功能。这使得以Qt for MCUs为目标的应用程序可以直接运行在Qt 5.15 LTS上——并且可以高效利用Qt工具。对于同时在微控制器和微处理器上使用Qt的组织来说,完全的兼容性至关重要。

Qt for MCUs已有一些很棒的工具了,我们将在2020年大幅改进这些工具。对于开发者而言,我们正在扩展Qt Creator IDE的使用,并将整个开发者体验提升到Qt用户熟悉的Qt for Device Creation级别。我们还增加了Qt Design Studio对MCU的支持,让设计师和开发者能在微控制器的开发上无缝协作。

Qt 5.15 LTS

Qt 5.15 LTS已发布了三个测试版,正处于开发的最后阶段,计划在5月底发布。对于商业许可证持有者而言,Qt 5.15 LTS将获得三年支持,就像Qt 5.12 LTS和Qt 5.9 LTS一样。对于开源用户来说,Qt 5.15是一个普通的Qt版本,没有长周期支持,就像Qt 5.14和Qt 6.0一样。

Qt 5.15 LTS最重要的新功能之一是完全支持的Qt Quick 3D,它为Qt应用程序添加3D功能提供了易于使用且高效的API。3D引擎是基于与Qt 3D Studio相同的运行时——深度集成了Qt Quick并增强了性能。Qt Quick 3D的一个关键优点是能够将2D和3D Qt Quick无缝结合到一个应用程序中,包括用于动画的统一定时器。

图形领域的另一个重要新项目是RHI的技术预览—— Qt全新的渲染硬件接口。RHI是Qt 5.15 LTS的一个可选功能,可以用于在Metal和Vulkan等新图形API上运行Qt。但也有一些限制,例如,RHI在Qt 5.15 LTS中只支持Qt Quick (2D),而、尚不支持新的Qt Quick 3D。RHI将是Qt 6.0的图形基线,但对于那些想要尝试的人来说,Qt 5.15 LTS已经提供了RHI。

其他与图形相关的重要项目是Qt 3D的多项改进,提高了性能和功能。有人可能会问为什么有两种不同的3D方法:Qt 3D和Qt Quick 3D。部分是由于历史的原因 —— 过去,我们也曾考虑过将这些方法组合在一起。然而,Qt Quick 3D和Qt 3D用途不同 —— 一个是将3D内容添加到Qt应用程序的易于使用的API,另一个是转换和调整3D渲染的多种特性的通用框架(甚至可以用它创建自己的渲染器)。

虽然我们在Qt 5.15 LTS中有很多新的图形功能,但这还不是全部。我们在QML中也做了很多工作来改进语言和功能。大多数新功能是为Qt 6开发的,但是我们已尽可能多地为Qt 5.15 LTS进行了调整。Qt 5.15 LTS中新的QML功能包括QML类型注册一些其他特性

与以往一样,许多部分将在Qt 5.15 LTS中得到有价值的增量改进。Qt for WebAssembly, Qt for Python,以及用户要求的许多不同模块的Qt功能。安卓支持将获得许多可用性改进、文档完善和一些新功能,如使用本机文件对话框。除了增加新功能外,我们为Qt 5.15 LTS所做的重要事情之一就是标记那些我们计划在Qt 6.0中更改或删除的API。当开发者将他们的应用程序移植到Qt 6时,这将有很大的帮助。

Qt 6

Qt下一个重要版本将于今年年底推出。我们曾介绍过Qt 6的主要功能和计划。因此,这篇文章将不再赘述。如果您还不了解Qt 6的内容,推荐您阅读Lars Knoll撰写的Qt 6 技术概览

Qt 5.0于2012年12月发布,因此Qt的重要版本之间相差8年,这与Qt 4.0和Qt 5.0之间的7.5年非常接近。就像Qt 4一样,Qt 5在这些年里添加了很多东西——我们正计划对Qt 6做同样的事情。Qt 6.0开发的最初重点是Qt Essentials功能。我们希望确保在Qt 6.0发布之前完成所有需要的更改,以便能够在整个Qt 6系列中保持二进制和源代码的兼容性。我们正努力将Qt 6打造为满足2020年需求的平台,而Qt 6.0只是这段美好旅程的开始。

我们将在今年推出许多关于Qt 6.0的博客文章和网络研讨会,所以请继续关注我们的频道。

行业解决方案

除了我已经介绍过的通用工具和框架项目之外,我们还专门针对不同行业的需求开发了产品。Qt Automotive Suite将基于Qt 5.15 LTS,并且Qt Automotive Suite的用户可使用所有Qt 5.15 LTS的功能。经安全认证的Qt Safe Renderer将有重大更新,为创建动态、安全关键的用户界面提供更多功能。今年,它还将在更多的平台上进行预集成和认证。Qt for Automation协议会不断更新到新的Qt版本,并根据客户反馈进一步开发。

Marketplace

我们在2019年Qt全球峰会上宣布推出Qt Marketplace,并在同年底上线,最初的内容来自多个合作伙伴和社区成员。越来越多的开发商正不断添加新的内容。如果您从未访问过,我建议您从https://marketplace.qt.io进入。

除了来自第三方的内容,Qt公司还将利用Marketplace在Qt框架和工具的基础上提供额外的内容。2020年,我们将不断改进Marketplace的用户体验,尤其是购买和安装体验。Qt Creator 4.12集成了Marketplace,允许通过Qt Creator IDE直接查看市场内的可用选项。我们今年还将创建集成Marketplace的全新Qt安装程序。

Subscribe to Our Blog

Stay up to date with the latest marketing, sales and service tips and news.