複製鏈接
請複製以下鏈接發送給好友

Qt

(應用程序開發框架)

鎖定
Qt [1]  是一個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調試支持,集成了基於ClangC/C++代碼模塊,並對Android支持做出了調整,至此實現了全面支持iOS、Android、WP,它提供給應用程序開發者建立藝術級的圖形用户界面所需的所有功能。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等圖形界面庫和 Windows 平台上的 MFC,OWL,VCLATL 是同類型的東西。
外文名
Qt
軟件平台
Windows,Linux和macOS
開發商
Qt Company
軟件授權
商業授權、LGPL、GPL
研發時間
1991年
作    用
跨平台C++圖形用户界面應用程序
最新版本
6.7 [5] 
特    性
跨平台
測試版
6.2.0

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平台支持

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^3、Symbian Anna、Symbian Belle、MeeGo、haiku-os。

QtQt Creator

在發佈 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優勢

Qt優良的跨平台特性

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 的模塊化程度非常高,可重用性較好,對於用户開發來説是非常方便的。 Qt 提供了一種稱為 signals/slots 的安全類型來替代 callback,這使得各個元件之間的協同工作變得十分簡單。

Qt豐富的 API

Qt 包括多達 250 個以上的 C++ 類,還提供基於模板的 collections, serialization, file, I/O device, directory management, date/time 類。甚至還包括正則表達式的處理功能。
支持 2D/3D 圖形渲染,支持 OpenGL
大量的開發文檔
XML 支持。

Qt安裝

Debian系列Linux系統下,比如Ubuntu系統下
Qt Qt
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下進入安裝包所在目錄後用 ./ 安裝。

Qt使用Qt的應用程序

一些著名的例子如下:
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配置工具
咪咕音樂:咪咕音樂是中國移動傾力打造的正版音樂播放器
WPS Office金山軟件公司推出的辦公軟件
極品飛車EA公司出品的著名賽車類遊戲

Qt發行版本

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

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年年底。 [2] 
2014年4月,在Qt Creator 3.1 Beta面世一個多月之後,終於迎來了其正式版。全新的Qt Creator 3.1.0主要包括Bug修復與系統改進,同時,還添加了一些新的功能特性
集成基於Clang的C/C++代碼模塊,完全支持iOS、QML調試和性能分析,新增WinRT插件,廢棄了對於沒有Python接口的GDB版本的調試支持,新增Beautifier插件,Android支持調整。 [3] 
更多關於 5.1 版本的介紹請看發行説明。
2019年7月,Qt 5.13版本發佈,Qt Creator beta版也更新到了 4.10.0。 [4] 
參考資料