qt

 编辑
Qt [1]  是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。2008年,Qt Company科技被诺基亚公司收购,Qt也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOSAndroidWP,它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。
 
 
中文名
Qt
研发时间
1991年
研发公司
Qt Company
作    用
跨平台C++图形用户界面应用程序
面向对象的框架

历史发展

编辑
* 1991–Haavard Nord和Eirik Chambe-Eng开始开发将会支持X11和Windows的Qt
* 1994–Qt Company成立
* 1996–KDE项目由MatthiasEttrich创建(Matthias现为诺基亚Qt发展框架工作)
* 1998 Apr 05Trolltech的程序员在 5 天之内将 Netscape5.0 从Motif移植到 Qt 上
* 1998 Apr 08 KDE Free Qt 基金会成立
* 1998 Jul 09 Qt 1.40 发布
* 1998 Jul 12 KDE 1.0 发布
* 1999 Mar 04QPL1.0 发布
* 1999 Mar 12 Qt 1.44 发布
* 1999 Jun 25 Qt 2.0 发布
* 1999 Sep 13 KDE 1.1.2 发布
* 2000 Mar 20 嵌入式Qt 发布
* 2000 Sep 06 Qt 2.2 发布
* 2000 Oct 05 Qt 2.2.1 发布
* 2000 Oct 30 Qt/Embedded 开始使用GPL宣言
* 2000 Sep 04 Qt free edition 开始使用 GPL
* 2008 Nokia从Trolltech公司收购Qt,并增加LGPL的授权模式
* 2011 Digia从Nokia收购了Qt的商业版权,从此Nokia负责Qt on Mobile,,Qt Commercial由Digia负责
* 根据最新消息,NOKIA已经停止Meltemi系统开发,Qt部门被解散
* 2012 Aug 09 作为非核心资产剥离计划的一部分,诺基亚宣布将Qt软件业务出售给芬兰IT服务公司Digia。
* 2013年7月3日,Digia公司Qt开发团队在其官方博客上宣布Qt 5.1正式版发布。
* 2013年12月11日,Digia公司Qt开发团队宣布Qt 5.2正式版发布。
* 2014年4月,Digia公司Qt开发团队宣布Qt Creator 3.1.0正式版发布。
*2014年5月20日,Digia公司Qt开发团队宣布Qt 5.3正式版发布。
*2019年,Qt团队宣布最新版5.13版本发布。

平台支持

编辑
Qt支持下述平台:
MS/Windows - 95、98、NT4.0、ME、2000、XP 、 Vista、Win7、win8、win2008、win10
Unix/X11 -Linux、SunSolarisHP-UXCompaqTru64 UNIX、IBMAIX、SGI IRIXFreeBSDBSD/OS和其它很多X11平台
Macintosh -Mac OS X
Embedded - 有帧缓冲(framebuffer)支持的嵌入式Linux平台,Windows CE、Symbian、Symbian^3、Symbian Anna、Symbian Belle、MeeGo、haiku-os。

Qt Creator

编辑
在发布 Qt 4.6 的同时,作为 Qt 开发跨平台 IDE 的Qt Creator也发布了更新版本。Qt Creator 1.3 和 Qt 4.6共同构成的 Qt SDK,包含了开发跨平台应用程序所需的全部功能。
Qt Creator是一个用于Qt开发的轻量级跨平台集成开发环境。Qt Creator可带来两大关键益处:提供首个专为支持跨平台开发而设计的集成开发环境 (IDE),并确保首次接触Qt框架的开发人员能迅速上手和操作。即使不开发Qt应用程序,Qt Creator也是一个简单易用且功能强大的IDE。
Qt Creator包含了一套用于创建和测试基于Qt应用程序的高效工具,包括:
一个高级的C++代码编辑器 上下文感知帮助系统 可视化调试器 源代码管理 项目和构建管理工具
Qt Creator在LGPL2.1版本授权下有效,并且接受代码贡献。
Qt Linguist
Qt Linguist被称为Qt语言家。它的主要任务只是读取翻译文件、为翻译人员提供友好的翻译界面,它是用于界面国际化的重要工具。
Linguist工具从4.5开始可以支持Gettext的PO文件格式。

优势

编辑
优良的跨平台特性:
Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。
面向对象
Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单。
丰富的 API
Qt 包括多达 250 个以上的 C++ 类,还提供基于模板的 collections, serialization, file, I/O device, directory management, date/time 类。甚至还包括正则表达式的处理功能。
支持 2D/3D 图形渲染,支持 OpenGL
大量的开发文档
XML 支持。

安装

编辑
在Debian系列Linux系统下,比如Ubuntu系统下
sudo apt-get install qt4-dev-tools #开发包
QtQt
sudo apt-get install qtcreator #IDE
sudo apt-get install qt4-doc #开发帮助文档
sudo apt-get install qt4-qtconfig #配置工具
sudo apt-get install qt4-demos #DEMO源码
或者直接从Qt官方网站下载.run格式的安装包,Windows下直接双击安装,Linux下进入安装包所在目录后用 ./ 安装。

应用程序

编辑
一些著名的例子如下:
3DSlicer, a free open source software for visualization and medical image computing
AcetoneISO:镜像文件挂载软件
Adobe Photoshop Album,一个图像组织应用程序 [35]
Arora:一款跨平台的开源网页浏览器
Autodesk MotionBuilder, 三维角色动画软件
Autodesk Maya, 3D建模和动画软件
Avidemux, a Free Software program designed for multi-purpose video editing and processing
Avogadro:高级分子编辑器
Battle.net:暴雪公司开发的游戏对战平台
BOUML,一个免费的统一建模语言工具箱
Bitcoin:比特币
chmcreator:开源的chm开发工具
CineFX:一款跨平台、开源、免费、影片剪辑,特效与合成套装
CoCoA, a software for computations in commutative algebra
Dash Express, an Internet-enabled personal navigation device
DAZ Studio, a 3D figure illustration/animation application
Doxygen:API文件产生器
EAGLE, tool for designing printed circuit boards(PCBs)
EiskaltDC++, a program that uses the Direct Connect protocol.
Emergent:神经网络模拟器。
, a software product for the simulation of electromagnetic fields
eva:Linux版QQ聊天软件。
FreeCAD, a free and open source 3D-Solid and general purpose design CAD/CAE
FreeMat:一个自由开源的数值计算环境和编程语言
Full Tilt Poker, one of the most popular online poker programs
Gadu-Gadu:实时通信软件
Gambas, A free development environment based on a Basic interpreter
GoldenDict:一款开源的字典软件
Google地球(Google Earth):三维虚拟地图软件。
GNS:Cisco网络模拟器。
Guitar Pro 6, a tablature editor
刺猬大作战:一个基于百战天虫的开源游戏。
Hydrogen, an advanced drum machine
ImageVis3D, a volume ray-casting application
Ipe:自由的矢量图形编辑器
ISE Webpack, a freeware EDA tool for Windows and Linux developed by Xilinx
Kadu, a Polish instant messenger using the Gadu-Gadu protocol
KDELibs:一个许多KDE程序都使用的共享库,如Amarok、K3b、KDevelop、KOffice等。
KeePassX, a multi-platform port of KeePass, an open source password manager for Microsoft Windows
Launchy:一个开放源代码的快捷启动器
LMMS:一个开放源代码的音乐编辑软件
LyX:使用Qt作为界面的LaTeX软件。
Mathematica:Linux和Windows版本使用Qt作为GUI
Maxwell Render,a software package that aids in the production of photorealistic images from computer 3D model data
Mixxx:跨平台的开放源代码DJ混音软件
MuseScore,一个WYSIWYG的乐谱编辑器
MythTV:开源的数字视频录制软件。
Nuke, a node-based compositor(节点式的合成软件)
PDFedit:自由的PDF编辑器
PokerTH, an open source Texas hold 'em simulator
Psi:一款XMPP网络协定的实时通信软件
qBittorrent:自由的BitTorrent P2P客户端
QCad:一个用于二维设计及绘图的CAD软件
Qjackctl, a tool for controlling the JACK Audio Connection Kit
QSvn, a GUI Subversion client for Linux, UNIX, Mac OS X and Windows
Opera:著名的网页浏览器。
Qt Creator, the free software cross-platform integrated development environment from Nokia
Qterm:跨平台的BBS软件。
Quantum GIS:自由的桌面GIS
Quassel IRC:跨平台的IRC客户端
RealFlow, a fluid and dynamics simulator for the 3D industry
Recoll:桌面搜索工具
Rosegarden, a free software digital audio workstation program
SciDAVis, a cross-platform plotting and data analysis program
Scribus:桌面排版软件。
Skype:一个使用人数众多的基于P2P的VOIP聊天软件。
SMPlayer:跨平台多媒体播放器
Spotify, music streaming service.
Stellarium:一款天文学的自由软件
TeamSpeak:跨平台的音效通信软件
Texmaker:一款跨平台的开放源代码LaTeX编辑器
TeXworks, It is a graphical user interface to the typesetting system TeX.
TOra, a database administration tool[36]
UniversalIndentGUI,an application which helps the user to beautify, reformat or indent various kinds of code.
Valknut,a program that uses the Direct Connect protocol
VirtualBox:虚拟机软件。
VisIt:一个开源型交互式并行可视化与图形分析工具,用于查看科学数据。
VisTrails, a scientific workflow management and visualization system
VLC多媒体播放器:一个体积小巧、功能强大的开源媒体播放器。
VoxOx, a unified communications software.
WordPress, based on Qt for Maemo and Symbian
wpa supplicant, a free software implementation of an IEEE 802.11i
Xconfig:Linux的Kernel配置工具
咪咕音乐:咪咕音乐是中国移动倾力打造的正版音乐播放器
WPS Office:金山软件公司推出的办公软件
极品飞车:EA公司出品的著名赛车类游戏

发行版本

编辑
Qt 是一个跨平台的 C++图形用户界面库,由挪威 TrollTech 公司于1995年底出品。
Trolltech 公司在 1994 年成立,但是在 1992 年,成立 Trolltech 公司的那批程序员 就已经开始设计 Qt 了,Qt 的第一个商业版本于 1995 年推出。
2008年1月31日,Nokia公司宣布通过公开竞购的方式收购TrollTech公司,旗下包括Qt在内的技术都归入Nokia旗下。并且Nokia针对自己的移动设备平台规划的需要,将Qt按不同的版本发行。
Qt商业版:提供给商业软件开发。它们提供传统商业软件发行版并且提供在协议有效期内的免费升级和技术支持服务。
Qt开源版:提供了和商业版本同样的功能。它是免费的,使用开源版需要了解其采用的各种开源协议。
例如使用开源版QT需要注意的是,QT开源版的LGPL开源协议:
LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。
即: 使用 采用LGPL开源协议的开源版QT,也可以用来开发商业、闭源软件。
 
2009年3月发布的Qt 4.5 起,诺基亚为Qt增添开源LGPL授权选择。
2009年5月11日起,诺基亚Qt Software 宣布Qt源代码库面向公众开放,Qt 开发人员可通过为 Qt 以及与 Qt 相关的项目贡献代码、翻译、示例以及其他内容,协助引导和塑造 Qt未来的发展。为了便于这些内容的管理,Qt Software 启用了基于Git 和 Gitorious 开源项目的Web 源代码管理系统 。
Qt专业版和企业版是Qt的商业版本。
如果你购买了这些商业版本,你也可以获得技术支持和升级服务。
专业版/企业版比较表
专业版
企业版
Qt的基本模块(工具、核心、窗口部件、对话框)
与平台无关的Qt图形用户界面工具包和应用类
X
X
Qt设计器
可视化的Qt图形用户界面的生成器
X
X
图标视图模块
几套图形用户交互操作的可视化效果。
X
X
工作区模块
多文档界面(MDI)支持
X
X
OpenGL 三维图形模块
在Qt中集成了OpenGL
 
X
网络模块
一些套接字,TCP、FTP和异步DNS查询并且与平台无关的类。
 
X
画布模块
为可视化效果,图表和其它而优化的二维图形领域。
 
X
表格模块
灵活的可编辑的表格/电子表格
 
X
XML模块
通过SAX接口和DOM Level 1很好且已经成形的XML解析器。
 
X
SQL模块
SQL数据库访问类。
 
X

版本

编辑
2009年12月1日,诺基亚发布了Qt 4.6。
Qt 4.6 首次包含了对Symbian平台的支持,并在其所支持的平台中新增了 Windows 7、Apple Mac OS 10.6 (雪豹) 和即将上市的Maemo 6。此外还为实时操作系统QNX 和 VxWorks提供了网络社区支持。对Maemo 5 的支持已进入研发阶段,其技术预览版第二版于2009年12月1日发布。
Qt 对 X11 、X86 、ARM 及 Symbian 的支持首次为开发人员创造了使用同一代码库同时针对这多个平台进行开发的机会。能够跨平台分享代码就意味着开发人员所开发的应用程序上市的速度将更快,影响的设备用户群将更广。
Qt Mobility项目下的全新Qt API技术预览版也同时发布。这些跨平台的API为开发人员提供了多种功能,如导航类设备的定位功能,以及信息发送和接收、联系人和网络连接管理等。
性能提升主要包括:一个经过高度优化、重新编写的 Qt GraphicsView 渲染算法、一个全新的 OpenGL 绘图引擎、WebKit、使用 OpenVG 对 2D 矢量图形的支持,以及对全新 DirectFB 的支持。
2013年7月3日,Qt 5.1 正式版发布了,这是 Qt 5.0 发布后经过 6 个月的开发而测试的新版本。主要是修复 5.0 中的 bug,但该版本还包含了很多新特性和一些小改进,详细内容请看 Qt 5.1 launch page。
Qt 5.1 绑定了 Qt Creator 2.7.2,可通过一个新的在线安装器来安装,可自动的无缝的更新,同时也提供了一个新版本的 Visual Studio 插件。
此外 Qt 5.1 还增加了很多新模块,大大扩展了 Qt 5.0 的功能。此外 5.1 版本还大大加强对不同平台的支持,包括Visual Studio 2012,以及对移动平台的支持。提供了 Qt for Android 和 iOS 的预览版。2011年02月22日,Qt for Android(Alpha) 发布。Qt for IOS发布时间大约是2013年年底。 [2] 
2014年4月,在Qt Creator 3.1 Beta面世一个多月之后,终于迎来了其正式版。全新的Qt Creator 3.1.0主要包括Bug修复与系统改进,同时,还添加了一些新的功能特性。
集成基于Clang的C/C++代码模块,完全支持iOS、QML调试和性能分析,新增WinRT插件,废弃了对于没有Python接口的GDB版本的调试支持,新增Beautifier插件,Android支持调整。 [3] 
更多关于 5.1 版本的介绍请看发行说明。
2019年7月,Qt 5.13版本发布,Qt Creator beta版也更新到了 4.10.0。