Qt5 與 Qt4 其中的一個區(qū)別是底層架構(gòu)進(jìn)行了改變,Qt5 引入了更加詳細(xì)的模塊化的概念,將眾多功能細(xì)分到幾個模塊之中,Qt4 則是一種粗略的劃分。本文主要對 Qt5 和 Qt4的模塊進(jìn)行一個簡單的介紹。 (注:本文引用Qt4.8和Qt5.6兩個版本) 一、Qt4.8 (http://doc./qt-4.8/modules.html) 1.基礎(chǔ)模塊: 1)QtCore,提供核心的非 GUI 功能,所有模塊都需要這個模塊。所有這些類都可以通過<QtCore>頭文件引入。。 2)QtGui,提供 GUI 程序的基本功能,包括與窗口系統(tǒng)的集成、事件處理、OpenGL 和 OpenGL ES 集成、2D 圖像、字體、拖放等。這些類一般由 Qt 用戶界面類內(nèi)部使用,當(dāng)然也可以用于訪問底層的 OpenGL ES 圖像 API。Qt Gui 模塊提供的是所有圖形用戶界面程序都需要的通用功能。 3)QtMultimedia,提供視頻、音頻、收音機(jī)以及攝像頭等功能。這些類可以通過<QtMultimedia> 引入,而且需要在 pro 文件中添加 QT += multimedia。 4)QtNetwork,提供跨平臺的網(wǎng)絡(luò)功能。這些類可以通過 <QtNetwork> 引入,而且需要在 pro 文件中添加 QT += network。 5)QtOpenGL,提供對 OpenGL 的支持。 6)QtOpenVG,提供對 OpenVG 的支持。 7)QtScript,提供對 Qt Scripts 的支持。 8)QtScriptTools,為 Qt Script 提供的額外組件。 9)QtSql,提供對 SQL 數(shù)據(jù)庫的支持。 10)QtSvg,提供對 SVG 文件的支持。 11)QtWebKit,提供顯示和編輯 Web 內(nèi)容。 12)QtXml,XML 處理。 13)QtXmlPatterns,提供對 XQuery、XPath 等的支持。 14)QtDeclarative,用于編寫動畫形式的圖形用戶界面的引擎。 15)Phonon,多媒體框架。 16)Qt3Support,Qt 3 兼容類庫。 2.工具模塊: 1)QtDesigner,用于擴(kuò)展 Qt Designer。 2)QtUiTools,用于在自己的引用程序中處理 Qt Designer 生成的 form 文件。 3)QtHelp,聯(lián)機(jī)幫助。 4)QtTest,單元測試。 3.專門供 Windows 平臺的模塊: 1)QAxContainer,用于訪問 ActiveX 控件。 2)QAxServer,用于編寫 ActiveX 服務(wù)器。 4.專門供 Unix 平臺的模塊: 1)QtDBus,使用 D-Bus 提供進(jìn)程間交互。
二、Qt5.6 (http://doc./qt-5/qtmodules.html) Qt5模塊分為 Essentials Modules 和 Add-on Modules 兩部分。前者是基礎(chǔ)模塊,在所有平臺上都可用;后者是擴(kuò)展模塊,建立在基礎(chǔ)模塊的基礎(chǔ)之上,在能夠運(yùn)行 Qt 的平臺之上可以酌情引入。 1.基礎(chǔ)模塊: 1)QtCore,提供核心的非 GUI 功能,所有模塊都需要這個模塊。這個模塊的類包括了動畫框架、定時器、各個容器類、時間日期類、事件、IO、JSON、插件機(jī)制、智能指針、圖形(矩形、路徑等)、線程、XML 等。所有這些類都可以通過 <QtCore> 頭文件引入。 2)QtGui,提供 GUI 程序的基本功能,包括與窗口系統(tǒng)的集成、事件處理、OpenGL 和 OpenGL ES 集成、2D 圖像、字體、拖放等。這些類一般由 Qt 用戶界面類內(nèi)部使用,當(dāng)然也可以用于訪問底層的 OpenGL ES 圖像 API。Qt Gui 模塊提供的是所有圖形用戶界面程序都需要的通用功能。 3)Qt Multimedia、Qt Multimedia Widgets,提供視頻、音頻、收音機(jī)以及攝像頭等功能。這些類可以通過 引入,而且需要在 pro 文件中添加 QT += multimedia。 4) Qt Network,提供跨平臺的網(wǎng)絡(luò)功能。這些類可以通過 引入,而且需要在 pro 文件中添加 QT += network。 5) Qt QML,提供供 QML(一種腳本語言,也提供 JavaScript 的交互機(jī)制) 使用的 C++ API。這些類可以通過 引入,而且需要在 pro 文件中添加 QT += qml。 6) Qt Quick、Qt Quick Layouts、Qt Quick Dialogs、Qt Quick Controls,允許在 Qt/C++ 程序中嵌入 Qt Quick(一種基于 Qt 的高度動畫的用戶界面,適合于移動平臺開發(fā))。這些類可以通過 引入,而且需要在 pro 文件中添加 QT += quick。 7) Qt SQL,允許使用 SQL 訪問數(shù)據(jù)庫。這些類可以通過 引入,而且需要在 pro 文件中添加 QT += sql。 8) Qt Test,提供 Qt 程序的單元測試功能。這些類可以通過 引入,而且需要在 pro 文件中添加 QT += testlib。 2.擴(kuò)展模塊: 1)Active Qt,專門用于windows的使用ActiveX和COM應(yīng)用; 2)Enginio,提供一個數(shù)據(jù)庫后臺,通過它規(guī)定的API調(diào)用,就可以將應(yīng)用程序的各種數(shù)據(jù)存儲在后臺上,實(shí)現(xiàn)即存即得。 3)Qt Android Extras,用于Android開發(fā); 4)Qt Bluetooth,提供硬件藍(lán)牙的訪問; 5)Qt Canvas 3D,使用js開發(fā)的Qt Quick調(diào)用的OpenGL3D繪圖模塊; 6)Qt Concurrent,多線程的并行計算框架; 7)Qt D-Bus,D-BUS通訊協(xié)議接口; 8)Qt Graphical Effects,Qt Quick使用的處理圖形效果的模塊; 9)Qt Image Formats,支持多種圖像格式, TIFF, MNG, TGA, WBMP等; 10)Qt Location,QML中展示地圖、導(dǎo)航、位置的模塊; 11)Qt Mac Extras,專為MAC平臺提供的接口,可以使用OS和IOS操作系統(tǒng)的方法; 12)Qt NFC,用于方位近場通信設(shè)備的接口模塊; 13)Qt OpenGL,OpenGL模塊,已經(jīng)包含進(jìn)QtCore; 14)Qt Platform Headers,提供特定平臺接口,綁定平臺運(yùn)行時狀態(tài)的插件的模塊; 15)Qt Positioning,提供方位位置,衛(wèi)星和區(qū)域監(jiān)控的模塊; 16)Qt Print Support,打印模塊; 17)Qt Quick Extras,提供Qt Quick模塊的特殊控制方式; 18)Qt Quick Widgets,提供C++和Qt Quick模塊的交互; 19)Qt Script,使用JS引擎的模塊; 20)Qt Script Tools,使用Qt Script模塊的額外組建模塊; 21)Qt Sensors,訪問硬件傳感器和進(jìn)行手勢識別的模塊; 22)Qt Serial Port,虛擬串口通信模塊; 23)Qt SVG,SVG文件進(jìn)行處理的模塊; 24)Qt WebChannel,用于與html和js進(jìn)行無縫交互; 25)Qt WebEngine,QML用于web開發(fā)的模塊; 26)Qt WebEngine Widgets,C++用于web開發(fā)的模塊; 27)Qt WebEngine Core,為QML和C++進(jìn)行web開發(fā)提供公共的接口; 28)Qt WebSockets,提供RFC6455通信協(xié)議支持; 29)Qt WebView,不需要完整的web瀏覽器支持,即可展示QML開發(fā)的web應(yīng)用; 30)Qt Windows Extras,提供windows API支持; 31)Qt X11 Extras,提供X11 API支持; 32)Qt XML,利用SAX和DOM進(jìn)行XML解析的接口; 33)Qt XML Patterns,支持XPath, XQuery, XSLT and XML 的模式驗(yàn)證。 3.GPL和GPLv3等商用協(xié)議模塊,開源版本不支持(也就是增值模塊) 1)Qt for Device Creation,快速、容易、完整的嵌入式開發(fā)工具; 2)Qt Charts,利用UI組件展示數(shù)據(jù)模型,圖表模塊; 3)Qt Quick Compiler,QML編譯器,將QML文件編譯成二進(jìn)制文件,以提高加載速度和代碼的安全性; 4)Qt Data Visualization,進(jìn)行3D數(shù)據(jù)可視化的開發(fā)模塊; 5)Qt Purchasing,開發(fā)移動平臺的商店,購物模塊; 6)Qt Virtual Keyboard,虛擬鍵盤模塊; 7)Qt Quick 2D Renderer,支持沒有OpenGL模塊的QML2D展示模塊。 4.技術(shù)預(yù)覽模塊 1)Qt 3D,2D、3D實(shí)時仿真渲染模塊; 2)Qt Serial Bus,串行總線接口,目前只支持Modbus和CAN; 3)Qt Labs Controls,為移動設(shè)備和嵌入式方面提供一個輕量級的QML開發(fā)接口,為QML開發(fā)提供簡易樣式架構(gòu),協(xié)同Qt Quick和Qt Quick Layouts模塊進(jìn)行工作。 5.工具模塊: 1)Qt Designer,UI設(shè)計器; 2)Qt Help,幫助文檔; 3)Qt UI Tools,用于處理UI設(shè)計器設(shè)計的表單。
|
|