1.4 Qt 的授权

Qt 产品的提供是采用双重授权的软件许可模式。在该双重授权模式下, Qt 产品不仅可 在获得商业许可下针对专利软件开发,而且还可以在 GPL(通用公共许可证,版本 2 或版本 3)下用于开发免费和开源软件。 也就是说,Qt 这个软件本身是开源和免费使用的, 如果 你基于 GPL 协议来开发软件的话,你开发的东西都要以 GPL 协议发布- 开源并免费提供源 码。

自从 Qt4.5 版本发布以后,Qt 通过三种授权方式提供: 商业、 LGPL 和 GPL,并且 仍然符合 Qt 的双重授权战略,表 1-3 示出了 Qt 的授权方式的简要说明,表 1-4 对比了授 权方式在具体使用时的不同。

表 1-3 Qt 的授权方式

Qt 商业版 Qt 商业授权适用于开发专属和/或商业软件。此版本适用于不希望与他人共享源代码,或者遵循 GNU 宽通用公共许可证 (LGPL) 2.1 版或 GNU GPL 3.0 版条款的开发人员。
Qt GNU LGPL v. 2.1 此版本 Qt 适用于开发专属或开源 Qt 应用程序,前提条件是必须遵循 GNU LGPL 2.1 版的条款。
Qt GNU GPL v. 3.0 如果您希望将 Qt 应用程序与受 GNU 通用公共许可证 (GPL) 3.0 版本条款限制的软件一同使用,或 者您希望 Qt 应用程序遵循该 GNU 许可证版本的条款,则此版本 Qt 适用于开发此类 Qt 应用程 序。

表 1-4 Qt 授权对照表

商业版 LGPL 授权版 GPL 授权版
授权收费 收取授权费 免费 免费
必须提供更改 Qt 的源代码 不需要, 更改的代码可以不公 布 必须提供源代码 必须提供源代码
可以创建专属应用程序 可以,不必公布源代码 可以,但必须遵循 LGPL v.2.1 条款 不可以,应用程序受 GPL 限 制,且源代码必须公开。
提供更新 是,仅限申请有效维护服务的 用户。 是,免费发布。 是,免费发布。
支持 提供,条件是维护协议必须有 效。 不提供,必须单独购买。 不提供,必须单独购买。
运行时收费

按照授权协议的不同,Qt 被按不同的版本发行:

Qt 商业版用于商业软件的开发,提供免费升级和技术支持服务。

Qt 开源版是 Qt 的非商业版本,是为开发自由和开放源码软件提供的 Unix/X11 版本。 在 GNU、GPL 或 LGPL 许可证下,它可以免费下载和使用。

此外,Qt 还提供了免费评估版、快照、beta 测试版、预览版等多种版本,其中免费评 估版 Qt 适用于 Windows、Mac、Linux、嵌入式 Linux 和 Windows CE 平台,它不但具备 全部功能,还带有源代码,Nokia 会在您进行评估期间提供技术支持。而快照、 beta 测试 版、预览版等版本则得不到 Qt 的支持。

1.4.1 Qt 开源版和商业版的不同

在网上经常看到有朋友提问,Qt 开源版和商业版到底有那些不同,有没有必要使用商 业版等问题,看来还是很有必要向大家介绍一下:

1. 功能不尽相同

两者在源码上基本一致,但开源版缺少一些数据库插件,因为这些插件都是基于特定数据库客户端程序的,很多商业数据库的客户端程序并不是开源的,所以插件就无法开源;也就是说,开源版不支持商业数据库的驱动,一般需要大家自己写驱动或者是采用第三方的 驱动。另外,在 Windows 版本上,开源版没有 ActiveQt 这个模块,它可以用来开发ActiveX 程序。

2.收费不同

开源版不收费,商业版根据版本不同,费用不同,一般一个 developer license 需要 大约几千美金。

3.服务不同

开源版不能享受服务,但可以到一些开放的 maillist 和论坛讨论;商业版有一年的免 费技术支持,有问题就直接发给 [email protected],另外商业版中还包括一年的同 产品免费下载支持。

4.协议不同

这个应该是最本质的不同,使用开源版开发需要遵循 GPL 或者 QPL,而使用商业版就没 有这个限制,大家可以看看 license agreement,原则上只要不开发和 Qt 竞争的产品就可以了。

总而言之,商业版 Qt 授权包括电子邮件(email)支持,可以获得升級,让您能够开发 完全闭源的软件。LGPL 对用户重新连接代码库的许可权有一些限制,不能提供商业数据库 如 Oracle 等的驱动,以及对 Micorsoft Office 二次开发的支持等,有时还有强加某些机 构可能不喜欢的架构要求等其他限制。除此之外,大多数情况下开源版的功能与商业版并无 二致。商业版与开源版功能的详细比较如表 1-5 所示:

表 1-5 开源版与商业版的比较

功能模块 开源版 商业版
Qt 的基本模块(工具、核心、窗口部件、对话框) 与平台无关的 Qt 图形用户界面工具包和应用类
Qt 设计器 可视化的 Qt 图形用户界面的生成器
图标视图模块 几套图形用户交互操作的可视化效果
工作区模块 多文档界面(MDI)支持
OpenGL 三维图形模块 在 Qt 中集成了 OpenGL
网络模块 一些套接字,TCP、FTP 和异步 DNS 查询并且与平台无关的类
画布模块 为可视化效果,图表和其它而优化的二维图形领域
表格模块 灵活的可编辑的表格/电子表格
XML 模块 通过 SAX 接口和 DOM 的很好的且已经成形的 XML 解析器
SQL 模块 SQL 数据库访问类 部分驱动(Sqlite、 MySQL)
ActiveQt 模块 支持 Office 二次开发等的模块 x
售后服务和支持 x 可单独购买服务

如果要下载上述版本的 Qt,只需访问网址: http://www.qtsoftware.com/downloads,而商业版本还需要与 Nokia 接洽。