Qt是一个1991年由Qt Company开发的
跨平台C++
图形用户界面应用程序开发框架,可构建高性能的
桌面、移动及
Web应用程序。也可用于开发非GUI程序,比如
控制台工具和服务器。Qt是面向对象的框架,使用特殊的
代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正的组件编程。
历史发展
* 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、
win10Unix/
X11 -
Linux、Sun
Solaris、
HP-UX、
CompaqTru64
UNIX、IBM
AIX、SGI IRIX、
FreeBSD、BSD/OS和其它很多X11平台
Embedded - 有帧缓冲(framebuffer)支持的嵌入式Linux平台,
Windows CE、Symbian、
Symbian^3、
Symbian Anna、Symbian Belle、MeeGo、haiku-os。
主要功能
跨平台IDE
在发布 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 类。甚至还包括
正则表达式的处理功能。
大量的开发文档
XML 支持。
安装
sudo
apt-get install qt4-
dev-tools #开发包
sudo apt-get install qtcreator #
IDEsudo 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
Adobe Photoshop Album,一个图像组织应用程序 [35]
Autodesk
MotionBuilder, 三维角色动画软件
Avidemux, a Free Software program designed for multi-purpose video editing and processing
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
EAGLE, tool for designing printed circuit boards(PCBs)
EiskaltDC++, a program that uses the Direct Connect protocol.
, a software product for the simulation of electromagnetic fields
FreeCAD, a free and open source 3D-Solid and general purpose design CAD/
CAEFreeMat:一个自由开源的
数值计算环境和
编程语言Full Tilt Poker, one of the most popular online poker programs
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
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 LMMS:一个开放源代码的音乐编辑软件
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混音软件
Nuke, a node-based compositor(节点式的合成软件)
PokerTH, an open source Texas hold 'em simulator
qBittorrent:自由的
BitTorrent P2P客户端
Qjackctl, a tool for controlling the JACK Audio Connection Kit
QSvn, a GUI Subversion client for Linux, UNIX, Mac OS X and Windows
Qt Creator, the free software cross-platform integrated development environment from Nokia
Quantum GIS:自由的桌面GIS
Quassel IRC:跨平台的IRC客户端
RealFlow, a fluid and dynamics simulator for the 3D industry
Rosegarden, a free software digital audio workstation program
SciDAVis, a cross-platform plotting and data analysis program
Skype:一个使用人数众多的基于P2P的VOIP聊天软件。
Spotify, music streaming service.
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
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.11iXconfig:Linux的Kernel配置工具
咪咕音乐:咪咕音乐是
中国移动倾力打造的正版
音乐播放器 版本记录
Trolltech 公司在 1994 年成立,但是在 1992 年,成立 Trolltech 公司的那批程序员 就已经开始设计 Qt 了,Qt 的第一个商业版本于 1995 年推出。
2008年1月31日,Nokia公司宣布通过公开竞购的方式收购TrollTech公司,旗下包括Qt在内的技术都归入Nokia旗下。并且Nokia针对自己的
移动设备平台规划的需要,将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 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年年底。
2014年4月,在Qt Creator 3.1 Beta面世一个多月之后,终于迎来了其正式版。全新的Qt Creator 3.1.0主要包括Bug修复与系统改进,同时,还添加了一些新的
功能特性。
集成基于Clang的
C/C++代码模块,完全支持iOS、
QML调试和
性能分析,新增
WinRT插件,废弃了对于没有
Python接口的GDB版本的调试支持,新增Beautifier插件,
Android支持调整。
更多关于 5.1 版本的介绍请看发行说明。
2019年7月,Qt 5.13版本发布,Qt Creator
beta版也更新到了 4.10.0。