【Qt5模塊】
Qt 5 與 Qt 4 最大的一個區別之一是底層架構有了修改,Qt 5 引入了模塊化的概念,將眾多功能細分到幾個模塊之中,
Qt 5 模塊分為 Essentials Modules 和 Add-on Modules 兩部分,前者是基礎模塊,在所有平臺上都可用;后者是擴展模塊,建立在基礎模塊的基礎之上,在能夠運行 Qt 的平臺之上可以酌情引入,
Qt5 基礎模塊分為以下幾個:
•Qt Core,提供核心的非 GUI 功能,所有模塊都需要這個模塊,包括影片框架、定時器、各個容器類、時間日期類、事件、IO、JSON、插件機制、智能指標、圖形(矩形、路徑等)、執行緒、XML 等,這些類都可通過 頭檔案引入,
•Qt Gui,提供 GUI 程式的基本功能,包括與視窗系統的集成、事件處理、OpenGL 和 OpenGL ES 集成、2D 影像、字體、拖放等,這些類一般由 Qt 用戶界面類內部使用,當然也可以用于訪問底層的 OpenGL ES 影像 API,Qt Gui 模塊提供的是所有圖形用戶界面程式都需要的通用功能,
•Qt Multimedia,提供視頻、音頻、收音機以及攝像頭等功能,這些類可以通過 引入,而且需要在 pro 檔案中添加 QT += multimedia,
•Qt Network,提供跨平臺的網路功能,這些類可以通過 引入,而且需要在 pro 檔案中添加 QT += network,
•Qt Qml,提供供 QML(一種腳本語言,也提供 JavaScript 的互動機制) 使用的 C++ API,這些類可以通過 引入,而且需要在 pro 檔案中添加 QT += qml,
•Qt Quick,允許在 Qt/C++ 程式中嵌入 Qt Quick(一種基于 Qt 的高度影片的用戶界面,適合于移動平臺開發),這些類可以通過 引入,而且需要在 pro 檔案中添加 QT += quick,
•Qt SQL,允許使用 SQL 訪問資料庫,這些類可以通過 引入,而且需要在 pro 檔案中添加 QT += sql,
•Qt Test,提供 Qt 程式的單元測驗功能,這些類可以通過 引入,而且需要在 pro 檔案中添加 QT += testlib,
•Qt Webkit,基于 WebKit2 的實作以及一套全新的 QML API,
Qt5 擴展模塊:
•Qt 3D,提供宣告式語法,在 Qt 程式中可以簡單地嵌入 3D 影像,Qt 3D 為 Qt Quick 添加了 3D 內容渲染,Qt 3D 提供了 QML 和 C++ 兩套 API,用于開發 3D 程式,
•Qt Bluetooth,提供用于訪問藍牙無線設備的 C++ 和 QML API,
•Qt Contacts,用于訪問地址簿或者聯系人資料庫的 C++ 和 QML API,
•Qt Concurrent,封裝了底層執行緒技術的類別庫,方便開發多執行緒程式,
•Qt D-Bus,這是一個僅供 Unix 平臺使用的類別庫,用于利用 D-Bus 協議進行行程間互動,
•Qt Graphical Effects,提供一系列用于實作影像特效的類,比如模糊、銳化等,
•Qt Image Formats,支持圖片格式的一系列插件,包括 TIFF、MNG、TGA 和 WBMP,
•Qt JS Backend,該模塊沒有公開的 API,是 V8 JavaScript 引擎的一個移植,這個模塊僅供 QtQml 模塊內部使用,
•Qt Location,提供定位機制、地圖和導航技術、位置搜索等功能的 QML 和 C++ API,
•Qt OpenGL,方便在 Qt 應用程式中使用 OpenGL,該模塊僅僅為了程式從 Qt 4 移植到 Qt 5 的方便才保留下來,如果你需要在新的 Qt 5 程式中使用 OpenGL 相關技術,需要使用的是 QtGui 模塊中的 QOpenGL,
•Qt Organizer,使用 QML 和 C++ API 訪問組織事件(organizer event),organizer API 是 Personal Information Management API 的一部分,用于訪問 Calendar 資訊,通過 Organizer API 可以實作:從日歷資料庫訪問日歷時間、匯入 iCalendar 事件或者將自己的事件匯出到 iCalendar,
•Qt Print Support,提供對列印功能的支持,
•Qt Publish and Subscribe,為應用程式提供對專案值的讀取、導航、訂閱等的功能,
•Qt Quick 1,從 Qt 4 移植過來的 QtDeclarative 模塊,用于提供與 Qt 4 的兼容,如果你需要開發新的程式,需要使用 QtQuick 模塊,
•Qt Script,提供腳本化機制,這也是為提供與 Qt 4 的兼容性,如果要使用腳本化支持,請使用 QtQml 模塊的 QJS* 類,
•Qt Script Tools,為使用了 Qt Script 模塊的應用程式提供的額外的組件,
•Qt Sensors,提供訪問各類傳感器的 QML 和 C++ 介面,
•Qt Service Framework,提供客戶端發現其他設備的服務,Qt Service Framework 為在不同平臺上發現、實作和訪問服務定義了一套統一的機制,
•Qt SVG,提供渲染和創建 SVG 檔案的功能,
•Qt System Info,提供一套 API,用于發現系統相關的資訊,比如電池使用量、鎖屏、硬體特性等,
•Qt Tools,提供了 Qt 開發的方便工具,包括 Qt CLucene、Qt Designer、Qt Help 以及 Qt UI Tools ,
•Qt Versit,提供了對 Versit API 的支持,Versit API 是 Personal Information Management API 的一部分,用于 QContacts 和 vCard 以及 QOrganizerItems 和 iCalendar 之間的相互轉換,
•Qt Wayland,僅用于 Linux 平臺,用于替代 QWS,包括 Qt Compositor API(server)和 Wayland 平臺插件(clients),
•Qt WebKit,從 Qt 4 移植來的基于 WebKit1 和 QWidget 的 API,
•Qt Widgets,使用 C++ 擴展的 Qt Gui 模塊,提供了一些界面組件,比如按鈕、單選框等,
•Qt XML,SAX 和 DOM 的 C++ 實作,該模塊已經廢除,請使用 QXmlStreamReader/Writer,
•Qt XML Patterns,提供對 XPath、XQuery、XSLT 和 XML Schema 驗證的支持,
由于 Qt 的擴展模塊并不是 Qt 必須安裝的部分,因此 Qt 在未來版本中可能會提供更多的擴展模塊,
【Qt4 模塊】
?QtCore,Qt 提供的非 GUI 核心類別庫,這一部分與 Qt 5 大致相同,只不過 Qt 4 的 core 類別庫中并不包含 JSON、XML 處理等,
?QtGui,圖形用戶界面組件,這個模塊相當于 Qt 5 的 QtGui 與 QtWidgets 兩個模塊的總和,
?QtMultimedia,多媒體支持,類似 Qt 5 的相關部分,
?QtNetwork,網路支持,類似 Qt 5,
?QtOpenGL,提供對 OpenGL 的支持,在 Qt 5 中,這部分被移植到 QtGui 模塊,
?QtOpenVG,提供對 OpenVG 的支持,
?QtScript,提供對 Qt Scripts 的支持,Qt Script 是一種類似于 JavaScript 的腳本語言,在 Qt 5 中,推薦使用 QtQml 的 JavaScript 部分,
?QtScriptTools,為 Qt Script 提供的額外組件,
?QtSql,提供對 SQL 資料庫的支持,
?QtSvg,提供對 SVG 檔案的支持,
?QtWebKit,提供顯示和編輯 Web 內容(Qt 4.8 附帶為 QtWebkit 2.2),
?QtXml,XML 處理,這部分在 Qt 5 中被添加到了 QtCore,
?QtXmlPatterns,提供對 XQuery、XPath 等的支持,
?QtDeclarative,用于撰寫影片形式的圖形用戶界面的引擎,
?Phonon,多媒體框架,
?Qt3Support,Qt 3 兼容類別庫,
下面是 Qt 4 的一些工具模塊:
?QtDesigner,用于擴展 Qt Designer,
?QtUiTools,用于在自己的參考程式中處理 Qt Designer 生成的 form 檔案,
?QtHelp,聯機幫助,
?QtTest,單元測驗,
下面是專門供 Windows 平臺的模塊:
?QAxContainer,用于訪問 ActiveX 控制元件,
?QAxServer,用于撰寫 ActiveX 服務器,
下面是專門供 Unix 平臺的模塊:
?QtDBus,使用 D-Bus 提供行程間互動,
【參考檔案】
1) https://www.devbean.net/2012/08/qt-study-road-2-modules/【基礎】Qt模塊簡介
https://www.devbean.net/2012/08/qt-study-road-2-catelog/
2) http://qt5.digitser.net/5.14/zh-CN/qtmodules.html
【參考請宣告出處,yvivid】https://www.cnblogs.com/yvivid/p/qt_base.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/618.html
標籤:其他
