Core Internals

Qt 包含一组丰富的基础框架(fundamental enablers), 主要来自 Qt Core 模块. Qt 使用这些使能器提供更高级别的 UI 和应用程序开发组件. 下面主题解释了最重要的技术, 并展示如何使用它们实现 Qt 尚未提供的专用功能.

对象, 属性, 事件

QObject 构成 Qt 对象模型的基础, 是许多 Qt 类的父类. 对象模型引入了许多机制, 例如元对象系统, 它允许运行时内省, 操作和调用对象中的属性和方法. 它还作为 Qt 事件系统的基础, 这是基于 QObject 对象之间通信的低级方式. Qt 的信号和槽机制提供了另一种高级通信形式.

这些功能还可以与状态机框架结合使用, 状态机框架提供了管理应用程序状态的正式定义和可预测的方式. 实现状态机的另一种方法是使用 Qt SCXML 附加模块从状态图 XML (SCXML) 文件创建状态机.

另外, QObject 通过 QObject::startTimer() 提供了一个简单的定时器机制. 或者, QTimer 提供定时器的高级接口.

容器类

容器是一种数据结构, 是其他对象的集合. 容器的一些示例有: 动态数组, 队列, 链表和关联数组. Qt提供了一组通用的, 基于模板的容器类, 用于构造内存中的数据.

详见 容器类.

国际化

Qt 使用 Unicode 来编码可显示的文本字符串. Unicode 为世界上所有常用的书写系统提供支持, 非常适合跨平台开发. 还可以使用 Qt 强大的国际化系统编写应用程序, 以通过一个代码库支持任意数量的不同语言.

进程间通信

Qt 提供了几个类来支持进程之间的通信. 你还可以使用 QProcess 类启动和管理外部进程.

线程

Qt 提供以安全且独立于平台的方式管理线程和并行代码的功能.

平台支持

Qt 允许你编写与平台无关的代码, 可以在不同平台上编译和部署相同的代码库, 而无需进行任何更改. 如果你需要使用特定于平台的功能并与系统库集成, Qt 也为此提供了解决方案.

Qt 使用 Qt 平台抽象 (QPA) 与目标平台上的窗口系统集成. QPA 是窗口系统的抽象, 它使得将 Qt 移植到新平台变得简单快捷. Wayland 协议就是这样的系统之一. Qt 可以与 Wayland 一起用作嵌入式硬件上的轻量级窗口系统, 以支持多进程图形用户界面.

Qt 平台抽象使用 Qt 的插件系统. 该插件系统提供 API 在特定领域扩展 Qt (例如添加对新图像格式, 数据库驱动程序等的支持), 也可用于编写你自己的支持第三方插件的可扩展 Qt 应用程序.