简介
Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程式,也可用于开发非GUI程式,比如控制台工具和服务器。Qt是面向对象语言,易于扩展,并且允许组件编程。
Qt很容易扩展,并且允许真正地组件编程。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。
2008年,奇趣科技被
诺基亚
公司收购,QT也因此成为
诺基亚
旗下的
编程语言
工具。
历史发展
* 1996 Oct
KDE组织成立
* 1998 Apr 08 KDE Free Qt 基金会成立
* 1998 Jul 09 Qt 1.40 发布
* 1998 Jul 12 KDE 1.0 发布
* 1999 Mar 04
QPL1.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。
平台支持
Qt支持下述平台:
MS/Windows - 95、98、
NT4.0、ME、2000、XP 、 Vista、Win7、win8
Macintosh -
Mac OS X
Embedded - 有帧缓冲(framebuffer)支持的嵌入式
Linux平台,Windows CE
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 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 #开发包
sudo apt-get install qtcreator #
IDE
sudo apt-get install qt4-doc #开发帮助文档
sudo apt-get install qt4-qtconfig #配置工具
应用程序
一些出名的例子如下:
3DSlicer, a free open source software for visualization and medical image computing
AcetoneISO:镜像文件挂载软件
Adobe Photoshop Album,一个图像组织应用程序 [35]
Arora:一款跨平台的开源网页浏览器
Autodesk MotionBuilder, 三维角色动画软件
Autodesk Maya, 3D建模和动画软件
Av
ide
mux, a Free Software program designed for multi-purpose video editing and processing
Avogadro:高级分子编辑器
BOUML,一个免费的统一建模语言工具箱
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
极品飞车
豆瓣播放器
发行版本
Qt 是一个跨平台的 C++
图形用户界面库,由挪威 TrollTech 公司于1995年底出品。
Trolltech 公司在 1994 年成立,但是在 1992 年,成立 Trolltech 公司的那批程序员 就已经开始设计 Qt 了,Qt 的第一个
商业版本于 1995 年推出。
2008年1月31日,Nokia公司宣布通过公开竞购的方式收购TrollTech公司,旗下包括Qt在内的技术都归入Nokia旗下。并且Nokia针对自己的移动设备平台规划的需要,将Qt按不同的版本发行。
2009年5月11日起,
诺基亚Qt Software 宣布 Qt源代码库面向公众开放,Qt 开发人员可通过为 Qt 以及与 Qt 相关的项目贡献代码、翻译、示例以及其他内容,协助引导和塑造 Qt未来的发展。为了便于这些内容的管理,Qt Software 启用了基于 Git 和 Gitorious 开源项目的Web 源代码管理系统 。
Qt专业版和企业版是Qt的
商业版本。
只有你购买了专业版或企业版,你才能够编写商业的,私人的或收费的软件。如果你购买了这些
商业版本,你也可以获得技术支持和升级服务。Qt为微软公司的Windows操作系统只提供了专业版和企业版。
专业版/企业版比较表
|
专业版
|
企业版
|
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 的支持。