一 QT 概述
1.1 什么是QT
qt
是一个跨平台的
c++
开发库,主要用来开发图形用户界面(
Graphical User Interface
,
GUI
)程序,
当然也可以开发不带界面的命令行(
Command User Interface
,
CUI
)程序。
Qt
是纯
C++
开发的,所以学好
C++
非常有必要。
Qt
还存在
Python
、
Ruby
、
Perl
等脚本语言的绑定, 也就是说可以使用脚本语言开发基于
Qt
的程序。
开源社区就是这样,好东西就会被派生扩展,到处使用, 越来越壮大。
Qt
支持的操作系统有很多,例如通用操作系统
Windows
、
Linux
、
Unix
,智能手机系统
Android
、
iOS
、
WinPhone
, 嵌入式系统
QNX
、
VxWorks
等等。
1.2 Qt 可以做什么?
Qt
虽然经常被当做一个
GUI
库,用来开发图形界面应用程序,但这并不是
Qt
的全部;
Qt
除了可以绘
制漂亮的界面(包括控件、布局、交互),还包含很多其它功能,比如多线程、访问数据库、图像处
理、音频视频处理、网络通信、文件操作等,这些
Qt
都已经内置了。
Qt
是应用程序开发的一站式解决方案,有了
Qt
,你就可以高枕无忧了!
Qt
本身包含的模块也日益丰
富, 一直有新模块和第三方模块加入进来。
大部分应用程序都可以使用
Qt
实现,除了与计算机底层结合特别紧密的,例如驱动开发,它直接使用
硬件提供的编程接口,而不能使用操作系统自带的函数库。
1997
年,
Qt
被用来开发
Linux
桌面环境
KDE
,大获成功,使
Qt
成为
Linux
环境下开发
C++ GUI
程序
的事实标准。
下面的程序都使用
Qt
开发:
WPS
、
YY
语音、
Skype
、豆瓣电台、虾米音乐、淘宝助理、千牛、暴雪的
战网客户端、
VirtualBox
、
Opera
、咪咕音乐、
Google
地图、
Adobe Photoshop Album
等。
Qt
虽然也支持手机操作系统,但是由于
Android
本身已经有
Java
和
Kotlin
,
iOS
本身已经有
Objective-C
和
Swift
,所以
Qt
在移动端的市场份额几乎可以忽略。
总起来说,
Qt
主要用于桌面程序开发和嵌入式开发。
1.3 QT和智能手机
Qt
目前支持主流的
Android
、
iOS
、
WinPhone
等智能机操作系统。
MeeGo
是基于
Qt
开发的操作系
统,由于被诺基亚抛弃了, 只剩一代绝版诺基亚
N9
手机。
诺基亚手机部门出售给微软之后,大部分诺基亚手机系统开发人员都被遣散了。
Qt
公司有专门针对移动开发的商业版本,
20
欧元或
25
美元一个月。不做商业可以无视这个,用开源
版本也是可以开发如
Android
、
iOS
、
WinPhone
应用的。
1.4 QT发展史
Qt
最早是
1991
年由挪威的
Eirik Chambe-Eng
和
Haavard Nord
开发的, 他们随后于
1994
年
3
月
4
号正式成立奇趣科技公司(
Trolltech
)。
Qt
原本是商业授权的跨平台开发库, 在
2000
年奇趣科技公
司为开源社区发布了遵循
GPL
(
GNU General Public License
)许可证的开源版本。
在
2008
年,诺基亚公司收购了奇趣科技公司,并增加了
LGPL
(
GNU Lesser General Public
License
)的授权模式。诺基亚联合英特尔利用
Qt
开发了全新的智能手机系统
MeeGo
,可惜遭遇了微
软木马屠城,诺基亚被迫放弃了
MeeGo
, 而
Qt
商业授权业务也于
2011
年
3
月出售给了芬兰
IT
服务
公司
Digia
。
当然好消息是
Digia
于
2014
年
9
月宣布成立
Qt Company
全资子公司,独立运营
Qt
商业授权业
务。目前
Qt
公司大力推广移动平台开发和商业应用, 总的来说
Qt
历经曲折,现在算是步入正轨了。
经过
20
多年的发展,
Qt
已经成为最优秀的跨平台开发框架之一,在各行各业的项目开发中得到广泛应
用。许多大型软件都是用
Qt
开发的,如
Autodesk Maya
、
Google Earth
、
Skype
、
WPS Offiffiffice
等。