2019年Qt路线图- Qt博客

作者:Richard Lin | Apr 8, 2019 6:09:50 AM

本文翻译自:Qt Roadmap for 2019 

原文作者:Tuukka Turunen

翻译校审:Keny Zhang

我们在2019年有一个良好的开端!我们近期发布了Qt 5.12,带来多个方面的性能改进和数以千计的bug修复,它可以作为您项目的良好基础。但我们还有很多工作要做:Python语言绑定、开发者和设计师共用的工具,针对特定行业的产品等等。实际上对于Qt用户来说,2019年即将又是一个大年!

每年差不多这个时候,我都会写一篇博文,介绍这一年我们的计划和路线图。通常,其中有些部分已经酝酿一段时间了,但有些还在准备中。受限于博客文章的长度,我会试着聊一聊最有趣的几个计划项目。

在深入2019年新项目前,我要感谢每位Qt开发者所作的贡献。我们有一个伟大的生态系统,这些贡献者多年来为我们付出良多,并继续塑造着Qt的未来。除了那些代码贡献者,我们还有众多活跃在Qt项目论坛、邮件列表、以及代码评审和Qt测试活动中的人们。

基线:Qt 5.12 LTS

2019年,我们将通过发布多个补丁改进Qt 5.12 LTS,以此完成错误纠正和性能改进。Qt 5.12 LTS是第三个长期支持的Qt 5版本,因此已成为开发应用程序的一个很好基准。在Qt 5.12.0中,我们修复了自Qt 5.6.3以来的5000多个bug,以及自Qt 5.9.7以来的2000多个bug。目前给Qt 5.12 LTS做的每次修复我们都会为了之前的LTS版本进一步发布Qt 5.12 LTS patch。除了修复bug和开发新功能之外,我们还投入大量精力提升Qt应用程序的性能、降低资源消耗——特别是那些使用Qt Quick以及Qt 3D Studio的应用程序。Qt 5.12 LTS也增加了几个新特性,包含了上一个Qt LTS版本之后Qt 5.11Qt 5.10版本中的所有酷炫功能。

Qt 5.6 LTS的支持于今年3月结束,Qt 5.9 LTS处于受限模式(只接收最重要的修复),我们建议用户迁移到Qt 5.12 LTS。由于bug修复和性能改进,迁移之后Qt应用程序不仅运行得更快更好,而且您还可以从许多Qt 5.12 LTS新功能和优化中获益良多。

因此,这个基线是可靠的,但2019年不仅仅是bug修复和特性打磨——我们还有许多很酷的新东西。以下是2019年即将发布内容的概览。

Python、WebAssembly和其他新产品

目前,Qt已在Qt 5.12 LTS中完全支持Python。为了实现这个目标,我们做了大量的工作。让我们尤为高兴的是,对日益增长的Python开发者而言,Qt所有功能都已触手可及。这项工作会在2019年持续进行,包括各种改进和新功能。除了不断改进Python绑定并支持Qt新版本和补丁之外,我们还计划在2019年推出一些很棒的新功能。

一个需求度很高的新功能是与常用的Python 第三方模块的集成,例如numpy、pytorch、pandas和matplotlib。其中,我们预期至少在2019年为numpy提供集成,也可能提供其他一些集成。更容易地部署Qt for Python应用程序是另一项常被提及的需求,我们计划在2019年提供一个更好的解决方案。其他主要项目包括QML集成的改进和工具改进,特别是让Qt Creator成为Python开发者钟爱的IDE。

另一个很酷的新项目是Qt for WebAssembly。到目前为止,它还是一个技术预览版,预计将在Qt 5.13版本中完全支持。自发布首个预览版本以来,它获得了很多的功能、性能和稳定性方面的改进。随着越来越多的用户选用Qt for WebAssembly并报告问题,我们将继续改进功能并修复bug。

2019年,我们将为Qt for WebAssembly用户带来许多重要的功能和大幅改进。除了已经可用的Mac和Linux之外,还将支持Windows作为开发主机。我们还开始提供Qt for WebAssembly二进制包,就像我们在大多数其他支持的平台上所做的一样。2019年即将推出的新功能包括访问本地文件系统(仍受限于浏览器沙箱机制)、在支持多线程的浏览器上启用多线程、对系统剪贴板的支持以及在浏览器文档中处理多个画布。我们还致力于增加调试功能、改进应用程序的链接时间,以加快开发。

在Qt 5.13中,我们发布了Qt Lottie技术预览版,这是一个用于Bodymovin 动画的播放器。Bodymovin是Adobe After Effect工具的一个插件,在不同的平台上有多个不同的播放器实现——这里是用Qt创建的跨平台播放器。新的播放器允许在Qt Quick应用程序中轻松包含和使用这些动画。Qt Lottie可以控制预先创建的动画(倒退/播放/暂停/停止/自动播放等),甚至能动态地更改动画源。从一开始,我们就专注于性能方面,以使Qt Lottie能够在嵌入式设备和Web、桌面和移动等典型的动画目标平台上使用。

虽然Qt Widgets的功能已经非常全面,但我们还计划在2019年添加新的组件。我们目前的计划是新增一个循环进度条和一个开关组件,这些都是一些很好的补充。其中一个或者两者将在Qt 5.14中发布。此外,我们还通过修复bug和在需要的地方做些小改进来不断提升Qt Widgets。

为开发者打造的工具:Qt Creator和新的Qt Lite工具

我们在Qt Creator老版本里做了大量的幕后工作,以切换到clang代码模型。现在,我们已收获了Clang-Tidy和Clazy两个工具。2019年,我们计划为Qt Creator IDE带来更好的诊断管理和性能改进。一个开发工作是使用符号数据库(Indexdb)对项目进行快速的二进制表述。与连续解析文件相比,这有望大幅提高性能。我们还在改进对Language Server Protocol的支持,通过它使Qt Creator支持更多的编程语言。

新的开发框架需要好工具,因此我们正不断改进Qt Creator对Python支持,以提供良好的开发体验。目前只作为研究项目,将来我们可能通过Python扩展Qt Creator的功能。我们将在2019年下半年向您更新这方面的进展情况。我们还在努力为WebAssembly提供现成的Qt支持。

Qt Creator支持CMake已经有一段时间了。2019年我们的目标是进一步改善支持,使CMake更容易启动新项目。我们计划为Qt Creator创建一个基于CMake的构建系统,并利用Qt Creator更好地支持CMake嵌入式开发。

作为Qt Creator的组成部分,Qt Quick Designer将获得最初为Qt Design Studio开发的新功能。虽然Qt Design Studio是为设计师打造的,而非开发工具,但它和Qt Creator IDE确实有很多共享部分。因此,我们可以将许多在可用性和人机工程方面的改进引入Qt Creator的Qt Quick Designer视图中。Qt Creator即将推出的主要新特性是使用Qt Quick Designer中的全新时间轴编辑器创建Qt Quick动画功能。

2019年,我们将完成对Qt for Device Creation中Qt Lite配置工具的重大改进。新版本提高了工具的可用性,并进一步扩展了Qt的可配置性。此外,我们正在创建一些预置的初始配置表,使大家可以更方便地使用该工具。新的Qt Lite配置工具带来的主要可用性改进是能够直接使用可视化工具进行整体配置,而无需运行单独的配置步骤。

为设计师打造的工具:Qt Design Studio和Qt 3D Studio

2019年最大的投资之一将是2D、3D用户界面的设计工具,以及进一步改进Qt 3D Studio运行时。我们的长期目标是将2D和3D设计工具统一到一个应用程序中,当然,当然仍然具有专门的2D和3D UI功能。2019年计划通过共享多个组件、提高互操作性和引入统一安装工具,跨出实现统一工具的第一步。

让我们先来看看Qt Design Studio,这个用于开发Qt Quick 用户界面的工具。2018年10月我们发布了第一个版本。最近发布的Qt Design Studio 1.1对第一个版本进行大量的打磨,增加了对Photoshop导入功能的合并支持,并对示例和文档进行了多项改进。此外,除了Mac和Windows之外,现在还可以使用Linux包。

2019年我们将为Qt Design Studio添加许多重要功能,例如支持其他图形设计工具如Sketch、全新轻松勾画曲线的编辑器和全新的属性编辑器,两者在Qt 3D Studio中共享。我们还改进了多显示器支持,提供了可停靠的项目工作区窗口,完善了应用程序的人机工程学和可用性。我们还将力争发布Qt Design Studio的开源版,该工具目前只面向商业版客户。

Qt 3D Studio将于今年6月发布和2.4版,运行时性能将得到大幅提升。更新后的渲染器和动画系统,以及对资源调节的支持,使其具备了更好的性能,显著减少了CPU负载,大大减少了3D内容的加载时间,并降低内存消耗。整个2019年,我们将持续改进,使复杂的实时3D应用程序在中档的硬件上也能运行良好。对于低端3D硬件,我们建议尽可能多地利用Qt Quick,并只对真正需要的地方使用实时3D。

Qt 3D Studio将于2019年推出的一些最有趣的新功能,包括支持立体渲染、完全更新的文本渲染、文本距离字段、自定义顶点着色器和对预编译着色器的支持。Qt 3D Studio还将受益于与Qt Design Studio共享的全新曲线编辑器和属性检查器。立体渲染允许更容易地寻址(AR/VR用例),支持最常见的立体渲染模式。Qt 3D Studio的文本渲染将得到一次彻底检修,以与Qt Quick为文本提供的出色功能相媲美。

有了Qt 3D Studio,我们也在寻求提供与内容创建工具(如Autodesk Maya)的改进集成。除了工具特定的集成之外,我们力争在2019年使用新的输入格式(如glTF 2.0)和其他可能的新格式来改进已经令人印象深刻的支持输入格式的列表。

自动化、汽车和其他行业

在2019年,我们将进一步开发我们的安全关键系统产品。经过功能安全认证的Qt Safe Renderer将获得渲染动态文本的能力以及对大尺寸位图的支持。这可以使Qt Safe Renderer更容易地创建完整的安全关键型UI。此外,我们正在考虑更广泛的硬件支持,并可能运行在更简单的实时操作系统上,特别是微控制器上。

我们为自动化和汽车行业提供的解决方案也将获得重要的新功能。我们将为自动化行业添加对CoAP协议的支持,首先发布技术预览版,然后完全支持。此外,Qt OPC UA在Qt 5.13中得到了完全支持(一些新的API,比如QML API仍然是技术预览),其他自动化协议也加入了新的功能。我们还计划研究Qt OPC UA服务器的实现。有了它,在需要创建边缘网关应用程序时,我们也能提供无缝的Qt体验。

Qt Automotive Suite将继续专注HMI的开发效率。今年我们的目标是提高它与第三方服务的集成能力和智能助手功能,以及通过新的API实现应用程序间操作。通过与Luxoft和KDAB的合作,我们将研究基于虚拟机窗口管理器的Qt Wayland深度支持,并且我们将致力于为许多汽车用例扩展额外的独立后端进程。例如,通过利用Qt IVI分离用户界面和车辆数据。此外,我们将添加有用的组件,如用户界面分析和光标控制。我们还通过进一步改进Qt Remote Objects(Qt 5.12 LTS中完全支持)和改进图形共享功能来满足多个行业的实际应用。

整个2019年我们还将持续致力于低性能 (和更低价格)硬件平台。Qt已经运行在多个不同的基于Cortex-M4和Cortex-M7的微控制器上,并广泛支持各种低端ARMv7和ARMv8硬件板。2019年,我们将争取支持更多型号的微控制器,以及更多针对微控制器的低端实时操作系统。我们还在考虑如何让Qt为微控制器提供更好的开发体验。我们的长期目标是让Qt为微控制器开发像在任何其他平台一样简单。

针对低端微控制器的优化和裁剪也可以用于许多其他低端的应用程序处理器。Qt提供了许多独特的功能,这在低端设备中常用的简单框架中并不常见。配备了多功能配置系统,可以选择所需的功能,并裁剪掉应用程序不需要的功能。这使得Qt能够适应更小的内存占用,并且能使用更少的系统资源。

参与Qt

如果若您希望了解Qt的更多近况,包括在中国举办的活动,请关注我们的微信公众号(微信号:theQtCompany),点击官网上的“联系我们”,加入邮件列表,或参与论坛上的讨论。我们总是很高兴在Qt项目中看到新的贡献者,以及通过bugreport给Qt预览版提供的反馈

如果您喜欢这篇文章,请帮我们点个赞或转发到您的朋友圈。谢谢!