Qt5模塊簡(jiǎn)介

Qt 5 與 Qt 4 最大的一個(gè)區(qū)別之一是底層架構(gòu)有了修改。Qt 5 引入了模塊化的概念,將眾多功能細(xì)分到幾個(gè)模塊之中。
Qt 5 模塊分為 Essentials Modules 和 Add-on Modules 兩部分。前者是基礎(chǔ)模塊,在所有平臺(tái)上都可用;后者是擴(kuò)展模塊,建立在基礎(chǔ)模塊的基礎(chǔ)之上,在能夠運(yùn)行 Qt 的平臺(tái)之上可以酌情引入。

Qt 基礎(chǔ)模塊分為以下幾個(gè):

  • Qt Core,提供核心的非 GUI 功能,所有模塊都需要這個(gè)模塊。這個(gè)模塊的類(lèi)包括了動(dòng)畫(huà)框架、定時(shí)器、各個(gè)容器類(lèi)、時(shí)間日期類(lèi)、事件、IO、JSON、插件機(jī)制、智能指針、圖形(矩形、路徑等)、線程、XML 等。所有這些類(lèi)都可以通過(guò) 頭文件引入。
  • Qt Gui,提供 GUI 程序的基本功能,包括與窗口系統(tǒng)的集成、事件處理、OpenGL 和 OpenGL ES 集成、2D 圖像、字體、拖放等。這些類(lèi)一般由 Qt 用戶界面類(lèi)內(nèi)部使用,當(dāng)然也可以用于訪問(wèn)底層的 OpenGL ES 圖像 API。Qt Gui 模塊提供的是所有圖形用戶界面程序都需要的通用功能。
  • Qt Multimedia,提供視頻、音頻、收音機(jī)以及攝像頭等功能。這些類(lèi)可以通過(guò) 引入,而且需要在 pro 文件中添加 QT += multimedia。
  • Qt Network,提供跨平臺(tái)的網(wǎng)絡(luò)功能。這些類(lèi)可以通過(guò) 引入,而且需要在 pro 文件中添加 QT += network。
  • Qt Qml,提供供 QML(一種腳本語(yǔ)言,也提供 JavaScript 的交互機(jī)制) 使用的 C++ API。這些類(lèi)可以通過(guò) 引入,而且需要在 pro 文件中添加 QT += qml。
  • Qt Quick,允許在 Qt/C++ 程序中嵌入 Qt Quick(一種基于 Qt 的高度動(dòng)畫(huà)的用戶界面,適合于移動(dòng)平臺(tái)開(kāi)發(fā))。這些類(lèi)可以通過(guò) 引入,而且需要在 pro 文件中添加 QT += quick。
  • Qt SQL,允許使用 SQL 訪問(wèn)數(shù)據(jù)庫(kù)。這些類(lèi)可以通過(guò) 引入,而且需要在 pro 文件中添加 QT += sql。
  • Qt Test,提供 Qt 程序的單元測(cè)試功能。這些類(lèi)可以通過(guò) 引入,而且需要在 pro 文件中添加 QT += testlib。
  • Qt Webkit,基于 WebKit2 的實(shí)現(xiàn)以及一套全新的 QML API(順便說(shuō)一下,Qt 4.8 附帶的是 QtWebkit 2.2)。

Qt 擴(kuò)展模塊則有更多的選擇:

  • Qt 3D,提供聲明式語(yǔ)法,在 Qt 程序中可以簡(jiǎn)單地嵌入 3D 圖像。Qt 3D 為 Qt Quick 添加了 3D 內(nèi)容渲染。Qt 3D 提供了 QML 和 C++ 兩套 API,用于開(kāi)發(fā) 3D 程序。
  • Qt Bluetooth,提供用于訪問(wèn)藍(lán)牙無(wú)線設(shè)備的 C++ 和 QML API。
  • Qt Contacts,用于訪問(wèn)地址簿或者聯(lián)系人數(shù)據(jù)庫(kù)的 C++ 和 QML API。
  • Qt Concurrent,封裝了底層線程技術(shù)的類(lèi)庫(kù),方便開(kāi)發(fā)多線程程序。
  • Qt D-Bus,這是一個(gè)僅供 Unix 平臺(tái)使用的類(lèi)庫(kù),用于利用 D-Bus 協(xié)議進(jìn)行進(jìn)程間交互。
  • Qt Graphical Effects,提供一系列用于實(shí)現(xiàn)圖像特效的類(lèi),比如模糊、銳化等。
  • Qt Image Formats,支持圖片格式的一系列插件,包括 TIFF、MNG、TGA 和 WBMP。
  • Qt JS Backend,該模塊沒(méi)有公開(kāi)的 API,是 V8 JavaScript 引擎的一個(gè)移植。這個(gè)模塊僅供 QtQml 模塊內(nèi)部使用。
  • Qt Location,提供定位機(jī)制、地圖和導(dǎo)航技術(shù)、位置搜索等功能的 QML 和 C++ API。
  • Qt OpenGL,方便在 Qt 應(yīng)用程序中使用 OpenGL。該模塊僅僅為了程序從 Qt 4 移植到 Qt 5 的方便才保留下來(lái),如果你需要在新的 Qt 5 程序中使用 OpenGL 相關(guān)技術(shù),需要使用的是 QtGui 模塊中的 QOpenGL。
  • Qt Organizer,使用 QML 和 C++ API 訪問(wèn)組織事件(organizer event)。organizer API 是 Personal Information Management API 的一部分,用于訪問(wèn) Calendar 信息。通過(guò) Organizer API 可以實(shí)現(xiàn):從日歷數(shù)據(jù)庫(kù)訪問(wèn)日歷時(shí)間、導(dǎo)入 iCalendar 事件或者將自己的事件導(dǎo)出到 iCalendar。
  • Qt Print Support,提供對(duì)打印功能的支持。
  • Qt Publish and Subscribe,為應(yīng)用程序提供對(duì)項(xiàng)目值的讀取、導(dǎo)航、訂閱等的功能。
  • Qt Quick 1,從 Qt 4 移植過(guò)來(lái)的 QtDeclarative 模塊,用于提供與 Qt 4 的兼容。如果你需要開(kāi)發(fā)新的程序,需要使用 QtQuick 模塊。
  • Qt Script,提供腳本化機(jī)制。這也是為提供與 Qt 4 的兼容性,如果要使用腳本化支持,請(qǐng)使用 QtQml 模塊的 QJS* 類(lèi)。
  • Qt Script Tools,為使用了 Qt Script 模塊的應(yīng)用程序提供的額外的組件。
  • Qt Sensors,提供訪問(wèn)各類(lèi)傳感器的 QML 和 C++ 接口。
  • Qt Service Framework,提供客戶端發(fā)現(xiàn)其他設(shè)備的服務(wù)。Qt Service Framework 為在不同平臺(tái)上發(fā)現(xiàn)、實(shí)現(xiàn)和訪問(wèn)服務(wù)定義了一套統(tǒng)一的機(jī)制。
  • Qt SVG,提供渲染和創(chuàng)建 SVG 文件的功能。
  • Qt System Info,提供一套 API,用于發(fā)現(xiàn)系統(tǒng)相關(guān)的信息,比如電池使用量、鎖屏、硬件特性等。
  • Qt Tools,提供了 Qt 開(kāi)發(fā)的方便工具,包括 Qt CLucene、Qt Designer、Qt Help 以及 Qt UI Tools 。
  • Qt Versit,提供了對(duì) Versit API 的支持。Versit API 是 Personal Information Management API 的一部分,用于 QContacts 和 vCard 以及 QOrganizerItems 和 iCalendar 之間的相互轉(zhuǎn)換。
  • Qt Wayland,僅用于 Linux 平臺(tái),用于替代 QWS,包括 Qt Compositor API(server)和 Wayland 平臺(tái)插件(clients)。
  • Qt WebKit,從 Qt 4 移植來(lái)的基于 WebKit1 和 QWidget 的 API。
  • Qt Widgets,使用 C++ 擴(kuò)展的 Qt Gui 模塊,提供了一些界面組件,比如按鈕、單選框等。
  • Qt XML,SAX 和 DOM 的 C++ 實(shí)現(xiàn)。該模塊已經(jīng)廢除,請(qǐng)使用 QXmlStreamReader/Writer。
  • Qt XML Patterns,提供對(duì) XPath、XQuery、XSLT 和 XML Schema 驗(yàn)證的支持。
    這里需要強(qiáng)調(diào)一點(diǎn),由于 Qt 的擴(kuò)展模塊并不是 Qt 必須安裝的部分,因此 Qt 在未來(lái)版本中可能會(huì)提供更多的擴(kuò)展模塊,
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容