qt
計算機應用程序開發框架
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 Apr 05Trolltech的程序員在 5 天之內將 Netscape5.0 從Motif移植到 Qt 上
* 1998 Apr 08 KDE Free Qt 基金會成立
* 1998 Jul 09 Qt 1.40 發布
* 1998 Jul 12 KDE 1.0 發布
* 1999 Mar 04QPL1.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。
* 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 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 支持。
在Debian系列Linux系統下,比如Ubuntu系統下
Qt
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,一個圖像組織應用程序
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
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
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 源代碼管理系統。
Qt專業版和企業版是Qt的商業版本。
如果你購買了這些商業版本,你也可以獲得技術支持和升級服務。
專業版/企業版比較表 | 專業版 | 企業版 |
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 的支持。
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。