Stay up to date with the latest marketing, sales and service tips and news.
在Qt 全球峰会 2025 (Qt World Summit 2025) 上,Qt Group 宣布了一项新的桥接技术 ,旨在帮助 Qt 与各种编程语言集成。 在这篇博客中,我们也希望能回答我们迄今为止收到的一些问题。
在畅想未来时,让我们回顾促使 Qt 产生这项新桥接技术想法的原因。
Qt 起源于 C++ 生态系统。2010 年 QML 和 Qt Quick 的引入为 Qt 带来了新的可能性,重点是使用现代声明式语言进行 UI 开发。尽管如此,在 Qt Quick 应用程序中访问 QML 引擎之外的应用特定 API 和数据,传统上仍然需要编写 C++。
2018 年,PySide 作为 PySide2 成为 Qt 5 的一部分,随后在 Qt 6 中成为 PySide6。如今,它已成为 Qt for Python 的基础。借助 Qt for Python,您可以使用 Python 编程语言(而非 C++)开发 Qt 应用程序,并使用 Shiboken 生成器为 C++ API 创建新的绑定。您还可以导入用 Qt for Python 编写的 QML 模块。与其他任何绑定一样,PySide 仍需要对其绑定的 Qt 库有扎实的了解 。
2023 年底,我们开始探索如何将 Qt 和 Qt Quick 扩展为 C++ 和 Python 社区之外的领先 UI/UX 框架。我们的目标是让新用户专注于他们现有的代码库和首选的编程语言,最大限度地减少为使用 Qt 而进行重构所需的工作量 。
受到将后端和前端分离的软件架构模式的启发,并借鉴多个内部黑客马拉松 (hackathon) 原型,我们开发了一种新的桥接技术概念。在这种方法中,用各种语言编写的代码充当后端并实现业务逻辑。前端是用 QML 和 Qt Quick UI 框架编写的 UI 代码 。
大约在 2024 年 5 月,也就是一年前,我们得出结论,这个方向可以带来切实而有趣的结果。所选的黑客马拉松原型与此完全吻合,并将有助于更快地启动 。到 2025 年春,经过 3-4 次迭代,我们已经将五种编程语言连接到 Qt Quick 的桥梁建立了可工作基线。
我们决定将这种方法和桥接技术命名为"Qt Bridges"。虽然这不是 Qt 第一次使用 "bridge "一词,但这并不冲突,相反,它证实了这个词适合用来描述 Qt 及其工具中各种有点类似的工作 。
借助新的桥接技术,Qt 不仅要为五种预选语言提供一套初始集成:C#、Kotlin/Java、Python、Rust 和 Swift,而且还开放并记录了一些私有的 QML API,以便未来任何人都能构建额外的语言集成。
有些读者可能会问:既然 Qt for Python 已经通过 PySide 提供了绑定,为什么还要包含 Python?答案是: PySide 提供了从 Python 访问 Qt API 的绑定,但开发人员仍需要使用各种 Qt API 手动将 Python 后端连接到 Qt Quick 前端。新的桥接技术仍然构建在 PySide 的基础上,目标是提供一个更高级、更简单的 API,使 Python 后端与 Qt Quick UI 的集成变得更容易,不再需要编写和理解各种 Qt API 。
当您使用桥接器时,您期望从一端连接到另一端,而不用担心下面的 "胶水层"。同样,Qt Bridges 允许开发人员专注于他们当前的代码,决定哪些数据将“跨桥”(across the bridge) 交换 ,从而在用每种选定语言编写的业务逻辑和用 Qt Quick 实现的 UI 之间设计一个简洁的数据接口。
其他读者可能想知道 Qt Bridges 中的 Rust 集成与CXX-Qt有何不同。事实上,两者几乎是相互独立的。CXX-Qt 能让 Rust 应用程序使用 Qt C++ 代码。相比之下,Qt Bridges 的重点是在前端使用 QML 和 Qt Quick,旨在简化和减少使用 Rust 时所需的桥接代码量 。
在撰写本文时,我们正在进行实施的下一步迭代,并在当前的 Qt 6 基线上创建一个新的代码库。
我们将在未来的博客中分享更多细节。未来发布的 Qt Bridges 技术预览版肯定会像 Qt 的其他部分一样包含自己的文档。在此之前,请登录 https://www.qt.io/qt-bridges 获取更新,并让我们知道哪些语言对您最重要。如果您是 Qt 和 Qt Quick 的新用户,请访问 https://try.qt.io。
Stay up to date with the latest marketing, sales and service tips and news.
Download the latest release here: www.qt.io/download.
Qt 6 was created to be the productivity platform for the future, with next-gen 2D & 3D UX and limitless scalability.
Find webinars, use cases, tutorials, videos & more at resources.qt.io
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.
Näytä tämä julkaisu Instagramissa.Henkilön Qt (@theqtcompany) jakama julkaisu