杂乱的内容,随便写一写,免得以后忘了...
内容比较杂,有些内容没有准确来源,先暂时这样,后面慢慢改
- Qt4.0 全平台增加GPL授权,开源社区可以在各个平台下适用Qt
- Qt4.5 全平台增加 LGPL 授权,使得 Qt 可以免费用于商业程序的开发。这尽管促进了Qt生态的发展,但是也对Qt的营收造成影响。(脱离Nokia后,一直在淡化LGPL授权...)
- Qt4.6 统一了源码Qt everywhere。用户不用纠结下载的Qt源码是适用于Linux/X11、Windows还是Embeded Linux。这也造成官方不好对某个平台(比如嵌入式)单独收费。
- Qt5.0 起,官方新开发的模块(比如Qt Charts、Qt Data Visualization、Qt VirtualKeyboard、Qt Quick 3D等)不支持LGPL授权,商业用户用到这些模块,需要购买Qt整体的商业授权。
- Qt提供商业解决方案Qt for Device Creation,引导嵌入式开发用户购买Qt商业授权(淡化Qt可以在LGPL协议下用于嵌入式开发)。
- Qt WebAssembly 不支持 LGPL 授权,商用的话需要购买商业授权。
Qt公司变迁
先看看公司名字的变迁
年份 | 公司名 | 备注 |
---|---|---|
1991 | - | 创始人开始设计、编写Qt |
1994-3-4 | Quasar Technologies | 公司成立 |
- | Troll Tech | 更名 |
- | TrollTech | 更名 |
2008 | Nokia | Nokia收购TollTech,更名为Qt Software |
2009 | Nokia | 更名为 Qt Development Frameworks |
2011 | Digia | Digia 收购Nokia持有的 Qt商业业务 |
2012 | Digia | Digia 收购Nokia持有的 Qt所有剩余业务 |
2014 | Digia Qt | Digia 成立子公司 The Qt Company |
2016 | The Qt Company | Digia 拆分出的独立公司 |
网址
在互联网的时代,网址变来变去对Qt是个灾难。查资料时,不同时期的资料指向不同的网址。更要命的是,Qt官方的一些资料和代码,在这个过程中,似乎也都丢掉了。
- trolltech.com
- qtsoftware.com
- qt.nokia.com
- qt-project.org
- qt.digia.com
- qt.io
Qt版本
Qt 版本很多,可能需要从不同角度看
版本与主要平台和授权协议
- Qt 主要支持 Linux、Windows、MacOS、Embeded Linux、Android、IOS 等系统
- 授权协议主要有 商业授权、GPL、LGPL
Qt 版本 | 年份 | 主要平台 及 授权 |
---|---|---|
0.90 | 1995 | X11/Linux (商业、FreeQt) |
1.0 | 1996 | X11(商业、FreeQt)、Windows(商业) |
2.0 | 1999 | X11(商业,QPL)、Windows(商业) |
2.2 | 2000 | X11(商业,GPL)、Embeded Linux/QWS/Qtopia(商业、GPL)、Windows(商业) |
3.0 | 2001 | X11(商业,GPL)、Embeded Linux/QWS/Qtopia(商业、GPL)、Windows(商业)、MacOS X(商业) |
4.0 | 2005 | 所有支持平台【X11、Embeded Linux、Windows、MacOS】(商业、GPL2.0) |
4.5 | 2009 | 所有支持平台【X11、Embeded Linux、Windows、MacOS、...】(商业、GPL2.0、LGPL2.1) |
4.6 | 2010 | 所有支持平台【X11、Embeded Linux、Windows、MacOS、Symbian、...】(商业、GPL2.0、LGPL2.1) |
5.0 | 2012 | 【Linux、Windows、MacOS X、Embeded Linux、...】(商业、GPL、LGPL* ) |
5.1 | 2013 | 【Linux、Windows、MacOS X、Embeded Linux、Android、iOS、...】(商业、GPL、LGPL* ) |
5.12 | 2018 | 【Linux、Windows、MacOS X、Embeded Linux、Android、iOS、...】(商业、GPL、LGPL* )、WebAssembly(商业、GPL) |
注意:
- Nokia收购Qt后,Qt4.5 开始,增加了 LGPL 授权。这对用Qt开发商业软件的小公司是利好。
- Nokia出售Qt后,LGPL协议对Qt的收入有不小影响。再次自力更生的Qt, 后面新开发的模块中,很多模块(比如Qt Charts、Qt Data Visualization、Qt VirtualKeyboard、Qt Quick 3D等),都不支持LGPL授权。使用时要特别注意。
- https://doc.qt.io/archives/qt-5.6/supported-platforms-and-configurations.html
- https://doc.qt.io/archives/qt-5.11/supported-platforms-and-configurations.html
- https://doc.qt.io/qt-5/qtmodules.html#gpl-licensed-addons
- https://doc.qt.io/archives/qt-6.3/supported-platforms.html
源码 Qt everywhere
Qt4.6开始,Qt各个版本(linux、maxos、win、embedded linux、wince等)的源代码统一成一份,叫做:Qt everywhere
下载源码时,我们看到的是:
1 |
|
而不再是,各个平台下有不同的源码包。
Qt 与嵌入式
理论上,Qt4.6以后,源码统一。不应该再刻意区分才对。但可能是个人对嵌入式不了解的原因,这部分显得特别乱。
- Qt for Device Creation,这是Qt为嵌入式Linux产品提供的商业解决方案(和Boot to Qt是一个东西?)。
这个东西对于嵌入式开发不是必须的,只需要Qt下载源码,然后交叉编译后进行应用程序开发即可。当然使用商业解决方案会更简单一些。嵌入式开发应该也是官方的主要营收点。
Qt for Device Creation 和 Qt for Application Development 是相对的概念。
- 前者用于嵌入式开发(设备上主要运行你开发的这个程序);
- 后者用于PC、平板、手机上的应用程序开发(你开发的程序只是这个设备中众多应用程序中的一个)。
简单捋一捋 Qt4.6之前的嵌入式历史...
历史:Qt/Embedded for Linux
- Qt的嵌入式版本,简称 Qte 或 Qt/E
- Qt4.0~Qt4.3阶段,它被称为 Qtopia core
- 从Qt4.4.1开始,改名为 Qt/Embedded for Linux
- 从4.5开始,Qt引入LGPL授权
这个东西一直存在,只不过在4.0~4.3阶段,它作为Qtopia-core存在于Qtopia项目中。其他时间,它都是独立存在的。
在Qt4.6之前,下载代码时,看到的是:
1 2 3 4 |
|
历史:Qtopia
- 基于Qte的类似桌面系统的应用环境(主要包括Qtopia PDA和Phone两个版本)。
- Qt4.0~Qt4.3阶段,它里面包含(Qte,即Qtopia core)
- 从Qt4.4.1开始,不再包含Qte,且改名为Qt Extended
- 2009年,Nokia终止项目Qt Extended
Qtopia是基于Qte开发的类似桌面系统的环境。即使没有它,也可以使用Qte来开发桌面程序。
2009年,Nokia终止该项目后,该项目中的一些优秀的设计理念,被吸收到了Qt-Mobility项目中。当然,后来Qt-Mobility随着Nokia的衰落而衰落了。
年份 | 产品 | 备注 |
---|---|---|
2000 | Qt/Embedded | 发布 (Qt/Embedded也就是 Qtopia Core),GPL+商业 |
2004 | Qtopia | 发布2.0.0和2.1.0 |
2005 | Qtopia | 发布2.1.1、2.1.2和2.2.0 |
2006 | Qtopia | 发布4.1.0~4.1.7和4.2.0 |
2007 | Qtopia | 发布4.2.1~4.2.5 |
2008 | Qtopia | 发布4.3.1 |
2009 | Qtopia | 发布4.3.2和4.3.3 |
2008 | Qt Extended | 发布4.4.1和4.4.2,构建系统qbuild取代老的qtopiamake |
2009 | Qt Extended | 发布4.4.3 |
2009-3-5 | Qt Extended | Nokia终止该项目 |
2009 | Qt Extended Improved | Openmoko克隆Qt Extended的代码 |
- | QtMoko | Qt Extended Improved重命名 |
不复存在的网址: * qtopia.net * qtextended.org
Qt与C++标准
Qt版本 | C++标准 | 备注 |
---|---|---|
Qt < 5.0 | 无标准要求(不依赖 STL) | - |
Qt >= 5.0 | C++98 | - |
Qt >= 5.7 | C++11 | - |
Qt >= 6.0 | C++17 | - |
- https://www.qt.io/resources/videos/qt-and-c20
参考
- https://wiki.qt.io/Qt_History
- https://www.qt.io/blog/2013/05/21/introducing-boot-to-qt-a-technology-preview
- https://doc.qt.io/archives/
- https://en.wikipedia.org/wiki/Qt_(software)
- https://en.wikipedia.org/wiki/List_of_platforms_supported_by_Qt