Qt是一个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支持做出了调整,至此实现了全面支持iOS、Android、WP,它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。
发展历程
* 1991年,Haavard Nord和Eirik Chambe-Eng开始开发将会支持X11和Windows的Qt
* 1994年,Qt Company成立
* 1996年,KDE项目由MatthiasEttrich创建(Matthias现为诺基亚Qt发展框架工作)
* 1998年4月5日,Trolltech的程序员在 5 天之内将 Netscape5.0 从Motif移植到 Qt 上
* 1998年4月8日,KDE Free Qt 基金会成立
* 1998年7月9日,Qt 1.40 发布
* 1998年7月12日,KDE 1.0 发布
* 1999年3月4日,QPL1.0 发布
* 1999年3月12日,Qt 1.44 发布
* 1999年6月25日,Qt 2.0 发布
* 1999年9月13日,KDE 1.1.2 发布
* 2000年3月20日,嵌入式Qt 发布
* 2000年9月6日,Qt 2.2 发布
* 2000年10月5日,Qt 2.2.1 发布
* 2000年10月30日,Qt/Embedded 开始使用GPL宣言
* 2000年9月4日,Qt free edition 开始使用 GPL
* 2008年,Nokia从Trolltech公司收购Qt,并增加LGPL的授权模式
* 2011年,Digia从Nokia收购了Qt的商业版权,从此Nokia负责Qt on Mobile,,Qt Commercial由Digia负责
* 根据最新消息,NOKIA已经停止Meltemi系统开发,Qt部门被解散
* 2012年8月9日,作为非核心资产剥离计划的一部分,诺基亚宣布将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、SunSolaris、HP-UX、CompaqTru64 UNIX、IBMAIX、SGI IRIX、FreeBSD、BSD/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 支持。
使用Qt的应用程序
一些著名的例子如下:
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 源代码管理系统 。
链接:https://pan.baidu.com/s/1aZKbhRO7xu_c3TzfJGkgCQ?pwd=1234
提取码:1234