威尼斯手机平台-电子正规官网登录首页

热门关键词: 威尼斯手机平台,威尼斯登录首页,威尼斯正规官网
在前一个月发表 Qt 5.11 从此以往,著名流行的 C++ 常用 GUI 开辟框架 Qt
分类:热门贴子

图片 1

美国当地时间今天,Qt 公司在其博客宣布,在下个月发布 Qt 5.11 之后,Qt 公司将推出一个新的版本 —— Qt for Python 技术预览版。

两个月前,Qt 5.13 稳定版正式发布,按照官方提供的发布计划,Qt 5.14 将在今年年底发布,明年中旬推出 Qt 5.15(或许是 Qt 5 的最后一个版本),接着就是可能会在 2020 年底问世的 Qt 6。

Qt 5.12 在三大桌面平台宣布支持 Python 2.7 以及 3.5+,并包含两个封装器模块,用来封装 Qt API 以及自有的 C++ 函数库。

我们大可将 Qt for Python 看作是重新命名和彻底改变的 PySide2,这是为 Python 语言提供 Qt 集成的模块。

这就意味着从 Qt 5 到 Qt 6,期间经历了长达八年的时间,如此大的跨度,对于一个开源框架意味着什么?Qt 6 又会迎来怎样的变化?近日 Qt 团队在博客发表文章介绍了他们在技术方面对 Qt 6 寄予的愿景。下面就来看看官方是如何看待 Qt 6 的。

知名流行的 C++ 常用 GUI 开发框架 Qt 官方宣布,开始在 5.12 版本中支持 Python —— Python 开发者现在可以使用所有的 Qt API,虽然目前尚处于技术预览版的阶段,但官方承诺,正式版将在不久后推出。

Qt 公司正在计划加大力度支持使用 Python 的 Qt 工具套件,“开发人员可以在他们的 Python 应用程序中享受 Qt 带来的所有好处,包括全球的官方技术支持。我们希望 Qt for Python 将把 Qt 带给新的开发者、带到新的地方和新的高度。”

按照官方的说法,Qt 6 会保持对 Qt 5 的延续性 —— 继续他们在 Qt 5 系列中所做的工作,并尽可能不对 Qt 5 用户在使用方面造成破坏性影响。但 Qt 6 毕竟是作为一个新的主要版本面世,它也有自己的使命,它将为我们提供更高的自由度来实现新功能,以更好地支持当前和未来的要求,而这不是当前 Qt 5 系列能满足的。

官方表示,Qt 5.12 将作为支持 Python 的第一个版本,虽然 Qt 5.12 也是一个长期支持版本,但 Python 部分不会一起获得长期支持。虽然官方希望支持 Python 的部分可以基于 Qt 版本同时发布,但目前还无法实现。

对于希望在 Qt for Python 官方技术预览版发布之前尝试快照的朋友,不妨查看这里

Qt 6 还会对代码库进行清理并使其更易于维护。因此,重点将放在那些需要在 Qt 内进行架构变更的项目中,这带来的影响就是,如果不破坏与 Qt 5.x 某种程度的兼容性就无法完成这些变更。

这个版本包含了两个 Python 模块,PySide2 和 Shiboken2。PySide2 为大多数 Qt API 提供 Python 封装器,而 Shiboken 则允许使用者封装自己的 C++ 函数库,并用于开发 Python 应用程序,而在内部,PySide2 模块依赖于 Shiboken。目前 Qt 5.12 在三大桌面平台提供了对 Python 2.7 以及 3.5+ 的支持。

查看 qt.io 博客了解更多关于 Qt for Python 的信息。

结合对 Qt 5 的延续性,所以 Qt 6 的目标之一就是在满足新要求的前提下,尽最大程度保证与 Qt 5 系列的兼容性。由于 Qt 5 的新版本仍在研发中,官方表示会将 Qt 6 的一些特性放到 Qt 5.14 和 Qt 5.15 LTS 中实现。随着 Qt 5.14 的特性冻结,研发工作的重心将转向 Qt 6,并希望在 2020 年底发布首个版本。

虽然未来在技术预览阶段结束后,有暗示提供兼容性的保证,但 Qt 支持 Python 的兼容性与 C++ 的兼容性声明不一样,前者是用特殊的语法使用 Qt 的 C++ API,但任何使用 Qt 5.12 支持 Python 的应用程序,都应该继续与未来的版本互相兼容。官方表示,目前 Shiboken 还有需要改善的地方,因此"Qt for Python"还不能拿掉技术预览版的标签。

(文/开源中国)    

众所周知,Qt 最大的亮点之一就是其跨平台特性 —— 开发者通过使用一种技术和单一代码库即可将应用程序部署到所有桌面、移动和嵌入式平台。而桌面平台是 Qt 立足的根本,对 Qt 而言这是最核心和最重要的市场。因此保持 Qt 在桌面市场的健康和增长是在其他市场也能够增长的先决条件。

在未来,官方会继续简化 PySide2 应用程序的部署,提供与其他 Python 模块更好的互操作性,并支持嵌入式和移动等平台。

下面将介绍在 Qt 中进行的一些关键技术变更,以使其能适应未来几年的技术发展。

(文/开源中国)    

下一代 QML

QML 和 Qt Quick 是过去几年推动 Qt 框架持续增长的主要技术。通过使用这些技术以直观的方式创建用户界面也是其产品的独特卖点。

不过 QML 毕竟是为 Qt 5 而创建的,存在一些怪异的操作及其局限性。因此开发团队计划借 Qt 6 以实现对 QML 的重大改进。目前计划的主要变化是:

  • 引入强大的类型系统
  • 使 JavaScript 成为 QML 的可选功能
  • 移除 QML 的版本控制功能
  • 移除 QObject 和 QML 之间的重复数据结构
  • 避免在 runtime 阶段生成数据结构
  • 支持将 QML 编译为高效的 C++ 和原生代码
  • 支持隐藏实现细节
  • 更好的工具集成

下一代图形堆栈

自 Qt 5 发布以来,图形领域已经发生了许多变化,所以 Qt 框架不得不对图形堆栈进行重大改进以保持竞争力。

Qt 5 使用 OpenGL 作为 3D 图形的统一 API。不过也是从那时起,业界诞生了许多新的 API。Vulkan 是 Linux 平台上 OpenGL 的指定继承者,Apple 正在推动 Metal 的发展,而微软则推出了 Direct 3D。这就意味着 Qt 将来必须与所有这些 API 无缝协作。为了实现这一点,Qt 必须定义一个新的层对图形 API 进行抽象(如用于平台集成的 QPA),官方将这个层称为渲染硬件接口(Rendering Hardware Interface,RHI),他们需要将所有渲染基础设施(QPainter,Qt Quick Scenegraph 以及对 3D 的支持)建立在该层之上。

此外,团队还打算为 Qt 6 带来统一的主题/样式引擎,这将使我们能够在桌面和移动平台上获得 Qt Widgets 和 Qt Quick 的原生外观。

对 C++ API 的增强

C++ 在过去几年里发生了巨大的变化。Qt 5 使用的还是 C++98 标准,到现在 Qt 6 已经开始使用 C++ 17。C++ 17 提供了更多的开箱即用功能,而这在 Qt 5 中是无法使用的,所以 Qt 6 的目标是更好地集成 C++ 17 的新功能,并保持对 Qt 5 的兼容性。

除此之外,团队还计划通过 C++ 为 QML 和 Qt Quick 引入一些新功能,致力于为 QObject 和相关类引入一个新的属性系统,将 QML 中的绑定引擎集成到 Qt 的内核,并可通过 C++ 进行使用。

新的属性系统和绑定引擎将大大减少绑定的 runtime 开销和内存消耗,并使 Qt 的所有其他部分都可以访问它们,而不仅仅是 Qt Quick。

对新语言的支持

Qt 5.12 引入了对 Python 的支持,此外团队还尝试通过引入 Qt for WebAssembly 技术将浏览器添加为新平台。在 6.0 发布之后,保持并进一步扩展其跨平台特性将是 Qt 6 系列的重要组成部分。

与 Qt 5 的兼容性和增量改进

保持与旧版本的兼容性非常重要,官方表示这也是他们开发 Qt 6 的主要要求之一。团队在博客中说到,他们确实会删除 Qt 的某些弃用功能,但也会确保用户所需的功能不受影响。这意味着关键功能,例如 Qt Widgets 和大部分用户使用的其他功能都将保持其可用性。

团队还计划对 Qt 5 系列中无法完成的核心类和功能进行渐进式改进,目的是保持完全的源代码兼容性,但由于对二进制兼容性没有要求,因此团队会继续实现在 Qt 5 中无法完成的代码清理和改进。

最终的目标应该是 Qt 6 与 Qt 5.15 LTS 有足够的兼容性,如此一来开发者就可以轻松维护一个同时针对这两个版本编译的大型代码库。

(文/开源中国)    

本文由威尼斯手机平台发布于热门贴子,转载请注明出处:在前一个月发表 Qt 5.11 从此以往,著名流行的 C++ 常用 GUI 开辟框架 Qt

上一篇:没有了 下一篇:威尼斯正规官网微软的决定让谷歌有能力单独控制整个互联网,微软表示
猜你喜欢
热门排行
精彩图文