簡介
Qt是一個多平台的C++圖形用戶界面應用程式框架。它提供給應用程式開發者建立藝術級的圖形用戶界面所需的所用功能。Qt是完全面向對象的很容易擴展,並且允許真正地組件編程。
自從1996年早些時候,Qt進入商業領域,它已經成為全世界範圍內數千種成功的應用程式的基礎。Qt也是流行的Linux桌面環境KDE 的基礎,KDE是所有主要的Linux發行版的一個標準組件。
歷史發展
*1996OctKDE組織成立
*1998Apr05Trolltech的程式設計師在5天之內將Netscape5.0從Motif移植到Qt上
*1998Apr08KDEFreeQt基金會成立*1998Jul09Qt1.40發布
*1998Jul12KDE1.0發布
*1999Mar04QPL1.0發布
*1999Mar12Qt1.44發布
*1999Jun25Qt2.0發布
*1999Sep13KDE1.1.2發布
*2000Mar20嵌入式Qt發布
*2000Sep06Qt2.2發布
*2000Oct05Qt2.2.1發布
*2000Oct30Qt/Embedded開始使用GPL宣言
*2000Sep04Qtfreeedition開始使用GPL
*2008Nokia從Trolltech公司收購Qt,並增加LGPL的授權模式
*2011Digia從Nokia收購了Qt的商業著作權,從此Nokia負責QtonMobile,QtCommercial由Digia負責
*根據最新訊息,NOKIA已經停止Meltemi系統開發,QT部門被解散
*2012Aug09作為非核心資產剝離計畫的一部分,諾基亞宣布將Qt軟體業務出售給芬蘭IT服務公司Digia。
*2013年7月3日,Digia公司Qt開發團隊在其官方部落格上宣布Qt5.1正式版發布。
*2013年12月11日,Digia公司Qt開發團隊宣布Qt5.2正式版發布。
*2014年4月,Digia公司Qt開發團隊宣布QtCreator3.1.0正式版發布。
*2014年5月20日,Digia公司Qt開發團隊宣布Qt5.3正式版發布。
平台支持
Qt支持下述平台:MS/Windows-95、98、NT4.0、ME、2000、XP、Vista、Win7、win8、win2008
Unix/X11-Linux、SunSolaris、HP-UX、CompaqTru64UNIX、IBMAIX、SGIIRIX、FreeBSD、BSD/OS和其它很多X11平台
Macintosh-MacOSX
Embedded-有幀緩衝(framebuffer)支持的嵌入式Linux平台,WindowsCE
SymbianSymbian^3SymbianAnnaSymbianBelle
QtCreator
在發布Qt4.6的同時,作為Qt開發跨平台IDE的QtCreator也發布了更新版本。QtCreator1.3和Qt4.6共同構成的QtSDK,包含了開發跨平台應用程式所需的全部功能。QtCreator是一個用於Qt開發的輕量級跨平台集成開發環境。QtCreator可帶來兩大關鍵益處:提供首個專為支持跨平台開發而設計的集成開發環境(IDE),並確保首次接觸Qt框架的開發人員能迅速上手和操作。即使不開發Qt應用程式,QtCreator也是一個簡單易用且功能強大的IDE。
QtCreator包含了一套用於創建和測試基於Qt應用程式的高效工具,包括:
一個高級的C++代碼編輯器上下文感知幫助系統可視化調試器原始碼管理項目和構建管理工具
QtCreator在LGPL2.1版本授權下有效,並且接受代碼貢獻。
QtLinguist
QtLinguist被稱為Qt語言家。它的主要任務只是讀取翻譯檔案、為翻譯人員提供友好的翻譯界面,它是用於界面國際化的重要工具。
Linguist工具從4.5開始可以支持Gettext的PO檔案格式。
優勢
優良的跨平台特性:Qt支持下列作業系統:MicrosoftWindows95/98,MicrosoftWindowsNT,Linux,Solaris,SunOS,HP-UX,DigitalUNIX(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/Odevice,directorymanagement,date/time類。甚至還包括正則表達式的處理功能。
支持2D/3D圖形渲染,支持OpenGL
大量的開發文檔
XML支持。
安裝
在Debian系列Linux系統下,比如Ubuntu系統下sudoapt-getinstallqt4-dev-tools#開發包
sudoapt-getinstallqtcreator#IDE
sudoapt-getinstallqt4-doc#開發幫助文檔
sudoapt-getinstallqt4-qtconfig#配置工具
sudoapt-getinstallqt4-demos#DEMO源碼
或者直接從Qt官方網站下載.run格式的安裝包,Windows下直接雙擊安裝,Linux下進入安裝包所在目錄後用./安裝。
應用程式
一些著名的例子如下:3DSlicer,afreeopensourcesoftwareforvisualizationandmedicalimagecomputing
AcetoneISO:鏡像檔案掛載軟體
AdobePhotoshopAlbum,一個圖像組織應用程式[35]
Arora:一款跨平台的開源網頁瀏覽器
AutodeskMotionBuilder,三維角色動畫軟體
AutodeskMaya,3D建模和動畫軟體
Avidemux,aFreeSoftwareprogramdesignedformulti-purposevideoeditingandprocessing
Avogadro:高級分子編輯器
Battle.net:暴雪公司開發的遊戲對戰平台
BOUML,一個免費的統一建模語言工具箱
Bitcoin:比特幣
chmcreator:開源的chm開發工具
CineFX:一款跨平台、開源、免費、影片剪輯,特效與合成套裝
CoCoA,asoftwareforcomputationsincommutativealgebra
DashExpress,anInternet-enabledpersonalnavigationdevice
DAZStudio,a3Dfigureillustration/animationapplication
Doxygen:API檔案產生器
EAGLE,toolfordesigningprintedcircuitboards(PCBs)
EiskaltDC++,aprogramthatusestheDirectConnectprotocol.
Emergent:神經網路模擬器。
,asoftwareproductforthesimulationofelectromagneticfields
eva:Linux版QQ聊天軟體。
FreeCAD,afreeandopensource3D-SolidandgeneralpurposedesignCAD/CAE
FreeMat:一個自由開源的數值計算環境和程式語言
FullTiltPoker,oneofthemostpopularonlinepokerprograms
Gadu-Gadu:實時通信軟體
Gambas,AfreedevelopmentenvironmentbasedonaBasicinterpreter
GoldenDict:一款開源的字典軟體
Google地球(GoogleEarth):三維虛擬地圖軟體。
GNS:Cisco網路模擬器。
GuitarPro6,atablatureeditor
刺蝟大作戰:一個基於百戰天蟲的開源遊戲。
Hydrogen,anadvanceddrummachine
ImageVis3D,avolumeray-castingapplication
Ipe:自由的矢量圖形編輯器
ISEWebpack,afreewareEDAtoolforWindowsandLinuxdevelopedbyXilinx
Kadu,aPolishinstantmessengerusingtheGadu-Gaduprotocol
KDELibs:一個許多KDE程式都使用的共享庫,如Amarok、K3b、KDevelop、KOffice等。
KeePassX,amulti-platformportofKeePass,anopensourcepasswordmanagerforMicrosoftWindows
Launchy:一個開放原始碼的快捷啟動器
LMMS:一個開放原始碼的音樂編輯軟體
LyX:使用Qt作為界面的LaTeX軟體。
Mathematica:Linux和Windows版本使用Qt作為GUI
MaxwellRender,asoftwarepackagethataidsintheproductionofphotorealisticimagesfromcomputer3Dmodeldata
Mixxx:跨平台的開放原始碼DJ混音軟體
MuseScore,一個WYSIWYG的樂譜編輯器
MythTV:開源的數字視頻錄製軟體。
Nuke,anode-basedcompositor
PDFedit:自由的PDF編輯器
PokerTH,anopensourceTexashold'emsimulator
Psi:一款XMPP網路協定的實時通信軟體
qBittorrent:自由的BitTorrentP2P客戶端
QCad:一個用於二維設計及繪圖的CAD軟體
Qjackctl,atoolforcontrollingtheJACKAudioConnectionKit
QSvn,aGUISubversionclientforLinux,UNIX,MacOSXandWindows
Opera:著名的網頁瀏覽器。
QtCreator,thefreesoftwarecross-platformintegrateddevelopmentenvironmentfromNokia
Qterm:跨平台的BBS軟體。
QuantumGIS:自由的桌面GIS
QuasselIRC:跨平台的IRC客戶端
RealFlow,afluidanddynamicssimulatorforthe3Dindustry
Recoll:桌面搜尋工具
Rosegarden,afreesoftwaredigitalaudioworkstationprogram
SciDAVis,across-platformplottinganddataanalysisprogram
Scribus:桌面排版軟體。
Skype:一個使用人數眾多的基於P2P的VOIP聊天軟體。
SMPlayer:跨平台多媒體播放器
Spotify,musicstreamingservice.
Stellarium:一款天文學的自由軟體
TeamSpeak:跨平台的音效通信軟體
Texmaker:一款跨平台的開放原始碼LaTeX編輯器
TeXworks,ItisagraphicaluserinterfacetothetypesettingsystemTeX.
TOra,adatabaseadministrationtool[36]
UniversalIndentGUI,anapplicationwhichhelpstheusertobeautify,reformatorindentvariouskindsofcode.
Valknut,aprogramthatusestheDirectConnectprotocol
VirtualBox:虛擬機軟體。
VisIt:一個開源型互動式並行可視化與圖形分析工具,用於查看科學數據。
VisTrails,ascientificworkflowmanagementandvisualizationsystem
VLC多媒體播放器:一個體積小巧、功能強大的開源媒體播放器。
VoxOx,aunifiedcommunicationssoftware.
WordPress,basedonQtforMaemoandSymbian
wpasupplicant,afreesoftwareimplementationofanIEEE802.11i
Xconfig:Linux的Kernel配置工具
咪咕音樂:咪咕音樂是中國移動傾力打造的正版音樂播放器
WPSOffice:金山軟體公司推出的辦公軟體
極品飛車:EA公司出品的著名賽車類遊戲
發行版本
Qt是一個跨平台的C++圖形用戶界面庫,由挪威TrollTech公司於1995年底出品。Trolltech公司在1994年成立,但是在1992年,成立Trolltech公司的那批程式設計師就已經開始設計Qt了,Qt的第一個商業版本於1995年推出。
2008年1月31日,Nokia公司宣布通過公開競購的方式收購TrollTech公司,旗下包括Qt在內的技術都歸入Nokia旗下。並且Nokia針對自己的移動設備平台規劃的需要,將Qt按不同的版本發行。
Qt商業版:提供給商業軟體開發。它們提供傳統商業軟體發行版並且提供在協定有效期內的免費升級和技術支持服務。
Qt開源版:僅僅為了開發自由和開放源碼軟體,提供了和商業版本同樣的功能。GNU通用公共許可證下,它是免費的。
2009年3月發布的Qt4.5起,諾基亞為Qt增添開源LGPL授權選擇。
2009年5月11日起,諾基亞QtSoftware宣布Qt原始碼庫面向公眾開放,Qt開發人員可通過為Qt以及與Qt相關的項目貢獻代碼、翻譯、示例以及其他內容,協助引導和塑造Qt未來的發展。為了便於這些內容的管理,QtSoftware啟用了基於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日,諾基亞發布了Qt4.6。Qt4.6首次包含了對Symbian平台的支持,並在其所支持的平台中新增了Windows7、AppleMacOS10.6(雪豹)和即將上市的Maemo6。此外還為實時作業系統QNX和VxWorks提供了網路社區支持。對Maemo5的支持已進入研發階段,其技術預覽版第二版於2009年12月1日發布。
Qt對X11、X86、ARM及Symbian的支持首次為開發人員創造了使用同一代碼庫同時針對這多個平台進行開發的機會。能夠跨平台分享代碼就意味著開發人員所開發的應用程式上市的速度將更快,影響的設備用戶群將更廣。
QtMobility項目下的全新QtAPI技術預覽版也同時發布。這些跨平台的API為開發人員提供了多種功能,如導航類設備的定位功能,以及信息傳送和接收、聯繫人和網路連線管理等。
性能提升主要包括:一個經過高度最佳化、重新編寫的QtGraphicsView渲染算法、一個全新的OpenGL繪圖引擎、WebKit、使用OpenVG對2D矢量圖形的支持,以及對全新DirectFB的支持。
2013年7月3日,Qt5.1正式版發布了,這是Qt5.0發布後經過6個月的開發而測試的新版本。主要是修復5.0中的bug,但該版本還包含了很多新特性和一些小改進,詳細內容請看Qt5.1launchpage.
Qt5.1綁定了QtCreator2.7.2,可通過一個新的線上安裝器來安裝,可自動的無縫的更新,同時也提供了一個新版本的VisualStudio外掛程式。
此外Qt5.1還增加了很多新模組,大大擴展了Qt5.0的功能。此外5.1版本還大大加強對不同平台的支持,包括VisualStudio2012,以及對移動平台的支持。提供了QtforAndroid和iOS的預覽版。2011年02月22日,QtforAndroid(Alpha)發布。QtforIOS發布時間大約是2013年年底。
2014年4月,在QtCreator3.1Beta面世一個多月之後,終於迎來了其正式版。全新的QtCreator3.1.0主要包括Bug修復與系統改進,同時,還添加了一些新的功能特性。
集成基於Clang的C/C++代碼模組,完全支持iOS、QML調試和性能分析,新增WinRT外掛程式,廢棄了對於沒有Python接口的GDB版本的調試支持,新增Beautifier外掛程式,Android支持調整。
更多關於5.1版本的介紹請看發行說明。