Qt 简介
Qt(发音同 cute)是一个跨平台的C++开发工具,有时又被称为C++部件工具箱。Qt被用在KDE桌面环境、Opera、Google Earth、Skype、Adobe Photoshop Album和VirtualBox的开发中。它是挪威Qt Software 的产品,2008年6月17日被芬兰的诺基亚(Nokia)公司收购,以增强该公司在跨平台软件研发方面的实力。
使用Qt开发的软件,可以在任何支持的平台上编译与运行,而不需要修改源代码。可以实现本平台的图形界面风格,也可实现其它平台的图形界面风格。比如可以在Microsoft Windows平台下编译出具有苹果公司Mac OS图形界面风格的应用程序。
经过多年发展,Qt不但拥有了完善的C++图形库,而且近年来的版本逐渐集成了数据库、OpenGL库、多媒体库(Phonon)、网络库、脚本库、 XML库、WebKit库等等,其内核库也加入了进程间通信、多线程等模块,极大的丰富了Qt开发大规模复杂跨平台应用程序的能力,真正意义上实现了其研发宗旨“Code Less; Create More; Deploy Anywhere.”。
Qt中使用了C++的非标准扩展,用在编译前增加一个名为moc的预处理器来实现,moc将Qt代码处理成标准C++代码。
Qt开放源代码,并且提供自由软件的用户协议。使得它可以被广泛地应用在各平台上的开放源代码软件开发中。
2009 年5月11日,诺基亚Qt Software 宣布 Qt源代码管理系统面向公众开放,Qt 开发人员可通过为 Qt 以及与 Qt 相关的项目贡献代码、翻译、示例以及其他内容,协助引导和塑造 Qt未来的发展。为了便于这些内容的管理,Qt Software 启用了基于 Git 和 Gitorious 开源项目的Web 源代码管理系统。
在推出开放式 Qt 代码库的同时,Qt Software 在其网站发布了其产品规划(Roadmap)。其中概述了研发项目中的最新功能,展现了现阶段对 Qt 未来发展方向的观点,以期鼓励社区提供反馈和贡献代码,共同引导和塑造 Qt 的未来。
Qt 提供三种授权方式[2]:
Qt 商业版 – Qt 商业授权适用于开发专属和/或商业软件。此版本适用于不希望与他人共享源代码,或者遵循 GNU 宽通用公共许可证 (LGPL) 2.1 版或 GNU GPL 3.0 版条款的开发人员。
GNU LGPL v. 2.1- Qt 4.5.0 及以后的版本开始遵循 GNU LGPL,这些版本的 Qt 适用于开发专属或开源 Qt 应用程序,前提条件是必须遵循 GNU LGPL 2.1 版的条款。
GNU GPL v. 3.0 – 如果您希望将 Qt 应用程序与受 GNU 通用公共许可证 (GPL) 3.0 版本条款限制的软件一同使用,或者您希望 Qt 应用程序遵循该 GNU许可证版本的条款,则此版本 Qt 适用于开发此类 Qt 应用程序。
关于如何正确选择合适的Qt授权协议,可以参考: Qt GPL, LGPL&Commercial License [3]。
支持平台
* Qt for X11:用于 X Window System (Unix、Linux、BSD)。支持 KDevelop IDE 集成
* Qt for Mac:用于 Apple Mac OS X。支持 Cocoa 和 Carbon 框架。支持以 Xcode 编辑、编译和测试。
* Qt for Windows:用于 Microsoft Windows。支持 Visual Studio 集成
* Qt for Embedded Linux:用于嵌入式Linux。可以通过编译移除不常使用的组件与功能。通过自己的视窗系统QWS,不需依赖X Window System,直接写入Linux 帧缓冲。可以减少存储器消耗。并提供虚拟帧缓冲 QVFb,方便在桌面系统上进行嵌入式测试。
* Qt for Windows CE:用于 Windows CE
* Qt for S60:用于 S60
语言绑定除了C++外,Qt还为其它多种计算机语言提供了应用程序接口,您也可以使用这些语言开发Qt应用程序。
* PyQt:Python绑定
* QtRuby:Ruby绑定
* Qt Jambi:Java绑定
* Qyoto:C# 或其他 .NET 语言绑定,同时也是Kimono(KDE API 的 .NET 绑定)的基础。
* QtAda:Ada绑定
* FreePascal QT4:Pascal绑定
* Perl Qt4:Perl绑定
* PHP Qt:PHP绑定
* Qt Haskell:Haskell绑定
* lqt:Lua绑定