Qt Core Internals
Qt包含了一组丰富的基础enablers,它们主要来自Qt Core模块。Qt使用它们来提供更高级别的 UI 和应用程序开发组件。以下主题解释了最重要的enablers,并展示了如何使用它们来实现 Qt 尚未提供的特殊功能。
对象、属性和事件
QObject类构成了 Qt 对象模型的基础,并且是许多 Qt 类的父类。对象模型引入了许多机制,例如元对象系统,它允许运行时自省、操作和调用对象中的属性和方法。它还作为 Qt 事件系统的基础,这是一种在基于QObject的对象之间进行通信的低级方式。Qt 的信号和槽机制提供了另一种高级形式的通信。
这些功能也可以与状态机框架结合使用,它提供了一种正式定义和可预测的方式来管理应用程序的状态。实现状态机的另一种方法是使用Qt SCXML附加模块从状态图 XML (SCXML) 文件创建它们。
此外,QObject提供了一个简单的计时机制,带有QObject::startTimer ()。另外,QTimer类为定时器提供了一个高级接口。
- 对象模型 Object Model
- 元对象系统 The Meta-Object System
- 属性系统 The Property System
- 事件系统 The Event System
- 信号和槽 Signals & Slots
- 状态机框架 The State Machine Framework
- 定时器 Timers
容器类
容器是一种数据结构,其实例是其他对象的集合。容器的一些示例是:动态数组、队列、链表和关联数组。Qt 提供了一组通用的、基于模板的容器类,用于在内存中构建数据。
有关更多详细信息,请参阅容器类的完整列表。
国际化
Qt 使用 Unicode 编码可显示的文本字符串。Unicode 支持世界上所有常用的书写系统,是跨平台开发的理想选择。也可以使用 Qt 强大的国际化系统编写应用程序以支持任意数量的不同语言,并使用一个代码库。
进程间通信
Qt 提供了几个类来支持进程之间的通信。您还可以使用QProcess类启动和管理外部进程。
线程
Qt 提供了以安全且独立于平台的方式管理线程和并行化代码的功能。
平台支持
Qt 允许您编写与平台无关的代码,其中可以为不同的平台编译和部署相同的代码库而无需任何更改。如果您需要使用特定于平台的功能并与系统库集成,Qt 也为此提供了解决方案。
Qt 使用 Qt 平台抽象 (QPA) 与目标平台上的窗口系统集成。QPA 是窗口系统的抽象,它使得将 Qt 移植到新平台变得简单快捷。一种这样的系统是 Wayland 协议。Qt 可以与 Wayland 一起用作嵌入式硬件上的轻量级窗口系统,以支持多进程图形用户界面。
Qt Platform Abstraction 使用 Qt 的插件系统。该插件系统提供 API 以在特定领域扩展 Qt(例如添加对新图像格式、数据库驱动程序等的支持)以及编写您自己的支持第三方插件的可扩展 Qt 应用程序。
- Qt 平台抽象
- 实施原子操作- 用于新架构
- 如何创建 Qt 插件
- Endian Conversion Functions - 用于处理来自 QtEndian 标头的字节序的函数