Qt包含了一組豐富的基礎enablers,它們主要來自Qt Core模塊。Qt使用它們來提供更高級別的 UI 和應用程序開發(fā)組件。以下主題解釋了最重要的enablers,并展示了如何使用它們來實現(xiàn) Qt 尚未提供的特殊功能。
對象、屬性和事件
QObject類構(gòu)成了 Qt 對象模型的基礎,并且是許多 Qt 類的父類。對象模型引入了許多機制,例如元對象系統(tǒng),它允許運行時自省、操作和調(diào)用對象中的屬性和方法。它還作為 Qt 事件系統(tǒng)的基礎,這是一種在基于QObject的對象之間進行通信的低級方式。Qt 的信號和槽機制提供了另一種高級形式的通信。
這些功能也可以與狀態(tài)機框架結(jié)合使用,它提供了一種正式定義和可預測的方式來管理應用程序的狀態(tài)。實現(xiàn)狀態(tài)機的另一種方法是使用Qt SCXML附加模塊從狀態(tài)圖 XML (SCXML) 文件創(chuàng)建它們。
此外,QObject提供了一個簡單的計時機制,帶有QObject::startTimer ()。另外,QTimer類為定時器提供了一個高級接口。
- 對象模型 Object Model
- 元對象系統(tǒng) The Meta-Object System
- 屬性系統(tǒng) The Property System
- 事件系統(tǒng) The Event System
- 信號和槽 Signals & Slots
- 狀態(tài)機框架 The State Machine Framework
- 定時器 Timers
容器類
容器是一種數(shù)據(jù)結(jié)構(gòu),其實例是其他對象的集合。容器的一些示例是:動態(tài)數(shù)組、隊列、鏈表和關聯(lián)數(shù)組。Qt 提供了一組通用的、基于模板的容器類,用于在內(nèi)存中構(gòu)建數(shù)據(jù)。
有關更多詳細信息,請參閱容器類的完整列表。
國際化
Qt 使用 Unicode 編碼可顯示的文本字符串。Unicode 支持世界上所有常用的書寫系統(tǒng),是跨平臺開發(fā)的理想選擇。也可以使用 Qt 強大的國際化系統(tǒng)編寫應用程序以支持任意數(shù)量的不同語言,并使用一個代碼庫。
進程間通信
Qt 提供了幾個類來支持進程之間的通信。您還可以使用QProcess類啟動和管理外部進程。
線程
Qt 提供了以安全且獨立于平臺的方式管理線程和并行化代碼的功能。
平臺支持
Qt 允許您編寫與平臺無關的代碼,其中可以為不同的平臺編譯和部署相同的代碼庫而無需任何更改。如果您需要使用特定于平臺的功能并與系統(tǒng)庫集成,Qt 也為此提供了解決方案。
Qt 使用 Qt 平臺抽象 (QPA) 與目標平臺上的窗口系統(tǒng)集成。QPA 是窗口系統(tǒng)的抽象,它使得將 Qt 移植到新平臺變得簡單快捷。一種這樣的系統(tǒng)是 Wayland 協(xié)議。Qt 可以與 Wayland 一起用作嵌入式硬件上的輕量級窗口系統(tǒng),以支持多進程圖形用戶界面。
Qt Platform Abstraction 使用 Qt 的插件系統(tǒng)。該插件系統(tǒng)提供 API 以在特定領域擴展 Qt(例如添加對新圖像格式、數(shù)據(jù)庫驅(qū)動程序等的支持)以及編寫您自己的支持第三方插件的可擴展 Qt 應用程序。
- Qt 平臺抽象
- 實施原子操作- 用于新架構(gòu)
- 如何創(chuàng)建 Qt 插件
- Endian Conversion Functions - 用于處理來自 QtEndian 標頭的字節(jié)序的函數(shù)