Qt
跨平台应用程序开发框架
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、win10
Unix/X11 -Linux、SunSolarisHP-UXCompaqTru64 UNIX、IBMAIX、SGI IRIX、FreeBSD、BSD/OS和其它很多X11平台
Macintosh -Mac OS X
Embedded - 有帧缓冲(framebuffer)支持的嵌入式Linux平台,Windows CE、Symbian、Symbian^3Symbian Anna、Symbian Belle、MeeGo、haiku-os。
主要功能
跨平台IDE
在发布 Qt 4.6 的同时,作为 Qt 开发跨平台 IDEQt 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, SolarisSunOS, 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 #配置工具
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:高级分子编辑器
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
DoxygenAPI文件产生器
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
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
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配置工具
咪咕音乐:咪咕音乐是中国移动倾力打造的正版音乐播放器
极品飞车:EA公司出品的著名赛车类游戏
版本记录
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专业版和企业版是Qt的商业版本。
商业版
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年年底。
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。
参考资料
Qt官网.Qt官网.
Qt的iOS预览版.Qt Chinese blog.2013-03-07
最新修订时间:2024-08-05 14:39
目录
概述
历史发展
参考资料