Skip to main content

用于开源开发的 Qt

在下载 Qt 用于开源开发之前,需确保为项目选择正确的许可类型。

注意事项

Qt 框架同时提供开源许可与商业许可。这一双重许可模式基于“等价交换”的原则 ——即"有得必有付出"。

简单来说,其运作方式如下:作为使用 Qt 开发应用所获得价值的回报,企业需要通过为 Qt 做出贡献或购买 Qt 许可来回馈社区。

通过开源方式回馈社区

当项目选择开源许可时,即表示在以下任一许可下使用 Qt:LGPL 第 3 版、GPL 第 2 版以及 GPL 第 3 版,从而为自由及开源软件的发展做出贡献。

Qt 开源模式的基本原则

GPL —— 所有用户均有权获取、修改并重新分发该应用程序的完整源代码。应用程序的用户将获得基于 GNU 通用公共许可证的四大自由的各项权利。

LGPL —— 对受GNU 宽通用公共许可证约束的 Qt 组件所做的任何修改,均须回馈给社区。这是 Qt 的主要开源许可,涵盖了大多数 Qt 模块。

请查阅Qt 产品图,了解各组件在不同开源模式下的可用情况。

请注意,Qt 中有部分组件仅以 GPL 形式向开源用户提供,这将要求您以兼容 GPL 的许可对您的应用程序进行授权。此外,Qt 还捆绑了第三方开源组件,若使用这些组件,则需分别遵守相应的许可合规要求。详见Qt 中其他许可详细信息。

开源使用义务

大多数 Qt 模块均以 LGPL v3 和 GPL v3 开源许可提供。在此许可下进行开发时,您需履行以下义务:

  • 为 Qt 库提供重新链接机制
  • 提供许可证副本,并明确声明使用了 Qt
  • 向客户提供 Qt 源代码副本
  • 接受对 Qt 源代码所做的修改不具有专有性
  • 制造"开放"的消费类设备
  • 接受数字版权管理相关条款,详见GPL 常见问题解答
  • 在试图行使软件专利权时须特别注意,详见常见问题解答
了解更多

如果开源许可模式不适合您的项目,或您担心无法遵守相关许可条款,请联系我们。我们可以帮助您通过多种商业许可方案获得开发、使用及分发应用程序的权利。

请注意,同一应用程序或设备中不允许同时使用开源许可与商业许可。详情请参阅 Qt 许可常见问题解答

qt-contribution-chart

开发者贡献至关重要

由于我们的资金来源于商业许可和服务的销售,因此尽快达到商业可用的成熟度至关重要,而这只能通过社区积极参与我们的开发过程来实现。Qt 社区在保障 Qt 的稳定性、丰富性与质量方面发挥着关键作用。全球数千名开源开发者对每个 Qt 版本进行深入测试,为我们持续推动 Qt 发展提供了必要支持,从而保障了 Qt 的未来。我们将这一过程称为"良性循环"。

访问贡献Wiki

需要 Qt 二进制文件?

可在 Qt Online Installer 中找到相关文件,该工具将引导用户选择合适的下载版本,并帮助安装与所用开源许可对应的工具及附加组件。

下载 Qt Online Installer

快速开始

尽职调查

请确认能够遵守 Qt 开源许可的各项义务。在决定使用哪种许可之前,建议查阅企业自身的开源政策,或咨询软件许可方面的法律专家。

获取源代码

获取源代码;如需帮助,社区不仅为 Qt 本身做出贡献,也持续完善 Qt Wiki,可从中了解如何入门。

开始贡献

Qt 源代码仓库向公众开放,这意味着开发者可以立即通过贡献代码、翻译、示例等方式,参与并影响 Qt 未来的发展方向。

常见问题

Qt 为何同时提供开源许可证?

  • Qt Open Source Licensing
  • Popular

我们坚信自由软件理念——使用软件既伴随着一定的权利,也伴随着一定的义务。采用开源许可,用户在使用 Qt 应用程序或设备时可获得四项基本自由:

  • 出于任何目的运行程序的自由
  • 研究程序运行原理并根据自身需求进行改造的自由
  • 重新分发副本、以帮助他人的自由
  • 改进程序并将改进成果公开发布、使整个社区受益的自由

这些自由不可协商、绝对成立,不能选择性或部分享有,您也必须将这些自由传递给您的用户。

自由软件社区正是凭借这些规则蓬勃发展,但也存在一些开发者从未打算遵守或无法遵守这些规则,因此应选择商业许可。The Qt Company 通过双重许可模式,为这两类需求都提供支持。

为什么贵公司与 KDE 之间存在许可协议?KDE 是什么?Qt 与 KDE 的渊源是什么?

  • Qt Open Source Licensing

KDE (kde.org) 是一个成立于 1996 年的国际自由软件社区,致力于打造一整套跨平台桌面应用程序。KDE 以其 Plasma 桌面环境最为知名,该环境是许多 Linux 发行版的默认工作环境。KDE 软件基于 Qt 框架构建。在 Qt 发展初期,KDE 项目及其社区是围绕 Qt 构建开发者生态的最大推动力量。

在早期,Qt 便已采用双重许可模式,但当时的源代码是以专有开源许可的形式提供的。为确保即便 Trolltech(Qt 的创立公司)被收购或破产,Qt 仍能以合适的开源许可继续供 KDE 使用,双方达成了一系列妥协方案。由此,KDE Free Qt Foundation 应运而生,并制定了《KDE Free Qt Foundation Agreement》。

KDE Free Qt Foundation 是一个旨在保障 Qt 工具包持续可用于自由软件开发(尤其是 KDE 软件开发)的组织。该基金会最初由 Trolltech 与 KDE e.V.(KDE 背后的非营利法人组织)于 1998 年共同创立,并订立了许可协议,确保 Qt 在主流桌面及移动平台上以 LGPLv3 和 GPLv3 许可持续可用。多年来,随着 Qt 相关的收购事件或许可、平台的更新,该许可协议已经过多次修订。

若不遵守 LGPL/GPL 的限制条款,将产生什么后果?

  • Qt Open Source Licensing

如果使用这些开源许可库的软件未能完全履行许可义务,您将丧失该许可及相关分发权利。另需注意,在大多数国家/地区,版权侵权属于法定违法行为,而非违约行为,因此适用相应的法定救济措施。

关于 GPL 的更多信息,请参阅 GPL 常见问题https://www.gnu.org/licenses/gpl-faq.html

能否使用社区开源版本开发商业产品?

  • Qt Open Source Licensing

这取决于您自身的业务需求及产品情况。您的产品需要履行开源许可的全部义务。

Qt 的开源版本 Qt Community Edition 主要以 LGPL(2.1 版或 3 版)及 GPL 第 3 版许可发布。

使用商业许可版本的 Qt 时,我是否需要考虑 LGPL 的相关问题?

  • Qt Open Source Licensing
通常不需要。使用商业许可版本的 Qt 时,Qt 的绝大部分内容均以商业许可条款提供。

Qt 中有少数模块使用了第三方开源组件的代码,例如 Qt WebEngine 使用了以 LGPLv2.1 授权的 Chromium,Qt Multimedia 使用了同样以 LGPLv2.1 授权的 FFmpeg。使用这些模块时,您需要用自有代码替换相应的第三方模块,或就解决方案中该部分内容履行对应的许可义务(就 Chromium 或 FFmpeg 而言,即 LGPLv2.1 的相关义务)。

不同 Qt 模块所涉及的全部第三方模块及依赖项,均记录于 Qt Documentation 中。该清单可能随每个 Qt 版本的发布而有所变化。

Qt 商业许可如何运作?团队中所有开发者都需要有效的 Qt 许可证吗?

  • Qt Open Source Licensing

该主题有完整的常见问题回答专区: Qt 商业许可常见问题

每一位 Qt 用户都必须拥有分配给自己的 Qt 商业许可。UI 设计师、技术美术、软件开发者或测试自动化工程师所需的 Qt 许可类型可能有所不同,但每个人都必须持有有效的订阅许可。

LGPLv2 与 LGPLv3 有何区别?

  • Qt Open Source Licensing

LGPLv3 是 GNU 宽通用公共许可证的现行版本。LGPLv2.1 是较早的版本,自由软件基金会已不再建议新项目采用该版本。两个版本的宗旨相同,均旨在保护用户使用和修改 LGPL 授权软件的自由。

LGPLv3 将这一宗旨表述得更为明确:您必须为终端用户提供安装经修改的 LGPLv3 授权库版本,并使用该修改版库运行您软件的手段。在实践中,这具体体现为:

  • Tivo 化(Tivoization)—— 明确禁止制造封闭式设备,使终端用户无法获得 LGPL 赋予的 Qt 开源库使用权利
  • 数字版权管理(DRM)与硬件加密 —— 不得被用来规避上述义务
  • 软件专利报复 —— 由于软件的所有用户均被授予许可,使得针对所分发软件中任何潜在专利软件采取专利报复行为变得毫无意义

在 LGPL 许可下使用 Qt 时,我需要履行哪些义务?

  • Qt Open Source Licensing
首先需要注意,并非所有 Qt 开源模块都以 LGPLv3 提供。部分模块仅以 GPLv3 形式面向开源用户提供,而诸如 Chromium 网页引擎等第三方组件则以 LGPLv2.1 提供。

在使用 LGPLv3 授权的 Qt 模块和库时,您需要履行以下几项义务:
  • 使用开源软件时,您需要了解并追踪项目中所使用的每一个示例、源代码片段、模块及库的许可情况。
  • 您需要向用户/客户提供所使用 Qt 库的完整源代码,包括您所做的全部修改。或者,您也可以提供一份书面文件,说明获取源代码的具体方式。请注意,该方式须在您自身可控范围之内,仅提供指向 Qt Project 或 Qt Company 所提供源代码的链接是不够的。
  • 只要您的应用程序属于"使用"该库的"作品",LGPL 便允许您对自身应用程序的源代码保密。此处通常建议采用动态链接方式。
  • 您应用程序的用户必须能够将应用程序重新链接至不同版本或经修改版本的 Qt 库。LGPLv3 还明确规定,用户须能够在其目标设备上运行重新链接后的二进制文件。您有义务向用户提供实现这一过程所需的全部工具。对于嵌入式设备而言,这包括向用户提供用于编译该库的完整工具链。对于以 LGPLv3 授权的部分,您有义务提供在目标设备上安装修改版库的完整说明(LGPLv2.1 对此并无明确规定,但让应用程序运行于修改版库之上显然也是该许可的既定意图)。
  • 使用 LGPL 软件的应用程序或设备的用户,必须被告知其相关权利,具体方式为向终端用户提供 LGPL 完整条款文本副本,并以醒目方式标明您对 LGPL 软件的使用情况。

LGPL 的条款不得以任何方式受到其他许可条款的限制。如果某应用程序未能完全履行 LGPL 所规定的各项义务,该应用程序将完全不允许分发,且您将丧失对该 LGPL 软件的全部权利。

相较于 LGPL(宽通用公共许可证),GPL 的规则更为严格。

我可以将使用开源版 Qt 和商业许可版 Qt 编写的代码混合使用吗?

  • Qt Open Source Licensing

不可以。如果希望从开源版 Qt 迁移至商业许可,请联系 Qt 销售团队。

关于此问题的更多内容,另见 https://www.qt.io/faq/qt-commercial-licensing

使用开源版 Qt 开发的应用程序,是否可以通过公共应用商店进行分发?

  • Qt Open Source Licensing
每个应用商店都有各自独特的条款和条件,这些条款可能与以 LGPL 或 GPL 许可分发应用程序相兼容,也可能不兼容。

Qt 的商业许可与所有主流应用商店的条款条件均兼容,因此通常是在各类应用商店中分发闭源应用程序的最佳选择。

我已使用开源版 Qt 开始产品开发,现在可以购买商业版 Qt ,并将代码迁移至商业许可下吗?

  • Qt Open Source Licensing
可以。以商业版 Qt 分发的项目,也必须在商业版 Qt 下进行开发。

若如果已使用开源版 Qt 开始开发,我们将协助制定方案,将相关代码库从开源治理迁移至商业许可之下。

如果在开始开发时不确定应使用哪种许可或版本,建议联系 The Qt Company,将根据具体开发需求提供最佳选择建议。

同一应用程序中是否可以同时使用 LGPLv2 和 LGPLv3 授权的库?

  • Qt Open Source Licensing
可以。同一应用程序中可以同时使用以 LGPLv2.1 和 LGPLv3 授权的库,例如将它们作为各自独立的共享库使用。这样做无需更改任一库的许可类型,且如有需要,应用程序本身仍可选择采用专有许可。

GNU 兼容性矩阵显示我不能同时组合使用 LGPLv2 和 LGPLv3?

  • Qt Open Source Licensing

如果 LGPLv2.1 代码与 LGPLv3 代码分别位于不同的共享库中,则二者可以在同一应用程序中使用,您也可以根据需要为应用程序选择专有许可 / LGPLv2.1 / LGPLv3 中的任意一种。

参考资料:https://www.gnu.org/licenses/gpl-faq.html#AllCompatibility

谁会关注您所使用的 LGPL/GPL 许可版本?

  • Qt Open Source Licensing
开发者本人、其客户以及终端用户都会关心这一问题,除非该应用是在商业许可下使用 Qt。LGPL 和 GPL 均为著佐权(Copyleft)许可,这意味着该许可将随产品一并传递给客户、用户或解决方案的使用者。

我不确定自己是否符合许可方案的要求,对开源许可感到困惑,该怎么办?

  • Qt Open Source Licensing
我们很乐意就具体情况进行探讨,但无法提供任何法律意见。我们始终建议联系熟悉开源许可的律师,对相关项目进行全面审查,以确定是否能够履行相关开源许可(LGPLv#/GPLv#)的全部义务。

  • Qt Open Source Licensing

充分发挥 Qt 的价值