
一、Qt发展史
Qt是一个跨平台的C++应用程序开发框架,用它可以轻易做出艺术级的图形界面;Qt 支持跨平台体现在它可以支持各大主流操作系统(Windows、Linux、Unix、嵌入式系统等)

总的来说Qt用在各类桌面应用程序开发以及嵌入式系统应用程序开发上,比较典型的案例如Linux桌面环境KDE、WPS Office办公软件以及谷歌地图等
Qt发行的版本分为Qt商业版和Qt开源版:商业版专门提供给商业软件开发使用,在商业有效期内会提供免费升级和相关技术支持服务;开源版开放Qt源码,开源版提供了和商业版同样的功能,我们可以认为开源版是为了让Qt更为主流以及强大其自身所设,但最初其实是为了解决Linux桌面环境KDE与Qt的商业授权的纠纷才为Qt增加了GPL开源授权;我们最关心的还是开源版是免费的
以上已间接说明我们为什么要选择Qt,但还是需要总结一下是什么使Qt对我们有价值而让我们选择它:
7年前,Digia发布了Qt5,到目前为止,世界已变化太多;Qt6.0也将准备在2020年底之前首次发布;Qt6将延续Qt在Qt5系列中所做的工作,Qt6的发布不会破坏现有用户(Qt6的目标是与Qt5系列具有高度的兼容性);新的Qt版本将会比Qt5系列拥有更高的自由度来实现用户的各种功能,会更好的支持当今以及未来的需求;当然Qt5新版本也会继续迭代开发,但更多的研发重点将转向Qt6;Qt对其客户和用户的核心价值如下:
Qt新版本会调整Qt以适应新的市场需求,但是上述5项依旧是其工作的核心
台式机市场是Qt产品的基础,对Qt来说是强大而重要的市场。这是Qt大多数用户与Qt首次接触的地方,并构成了Qt工具的基础。保持健康和成长是在其他市场也要成长的先决条件 嵌入式和连接设备是Qt最大的增长点。触摸屏正越来越多地用于设备,但是这些设备的硬件价格承受着巨大压力。低端芯片组,微控制器以及中小型触摸屏将在任何地方使用。这些设备中的大多数将具有相对简单的功能,但需要优美而流畅的用户界面。Qt6将创建大量此类设备来定位该空间以实现Qt的可扩展性承诺 同时,设备范围高端的用户界面将继续增加复杂性,其中包含数千个不同的屏幕和许多应用程序。将2D和3D元素合并到一个用户界面中是很常见的,增强现实和虚拟现实的用法也是如此 人工智能元素将在应用程序和设备中更常用,Qt将用简单的方法来与它们集成
在过去的几年中,QML和Qt Quick已经成为推动Qt发展的主要技术,使用这些技术创建用户界面的直观方式使越来越多的用户选择Qt;但是Qt5所用的QML具有一些怪异和局限性,所以Qt6将计划做如下主要更改:
从Qt5.0发布到现在,图形领域已经发生了很多变化,Qt会对图形对战进行重大的更改才能保持竞争力 Qt5使用OpenGL作为3D图形的统一API。从那时起,已经定义了许多新的API。Vulkan是Linux上OpenGL的指定继任者,苹果正在推动Metal,微软拥有Direct 3D。这意味着Qt将来将不得不与所有这些API无缝协作。为了使之成为可能,必须定义一个抽象层来抽象图形API(例如用于平台集成的QPA),称为渲染硬件接口(RHI)。我们将需要在该层之上建立所有渲染基础结构(QPainter,Qt Quick Scenegraph和3D支持) 一组不同的图形API也导致Qt必须支持不同的着色语言。Qt着色器工具模块将帮助我们在编译和运行时交叉编译着色器 3D扮演着越来越重要的角色,而当前的Qt产品还没有统一的解决方案来创建同时包含2D和3D元素的UI。目前,将QML与来自Qt 3D或3D Studio的内容集成起来很麻烦,并且会导致性能开销。另外,不可能在2D和3D内容之间逐帧同步动画和过渡 3D内容与Qt Quick的新集成旨在解决此问题。在这种情况下,全新的渲染器将允许一起渲染2D和3D内容,并支持两者之间的任意嵌套。这将把QML变成我们用于3D UI的UI定义语言,并且不再需要UIP格式。Qt团队将在Qt 5.14中提供具有3D支持的“新” Qt Quick的技术预览 最后会为Qt6带来一个统一的主题/样式引擎,这将使我们能够在Qt Widgets和Qt Quick的桌面和移动平台上获得原生的外观
Qt5.0基于C++ 98,Qt6将依靠C++ 17来实现,但同时不会失去向后兼容性
——madmanazo
本文分享自 ElectricDeveloper 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!