README
# 专栏笔记总结大全
# QT核心库实践
# 01.核心功能基础
- 1.1.1 对象模型:
QObject是所有 Qt 对象的基类,提供信号槽机制、对象树管理、事件处理等核心功能。 - 1.1.2 元对象系统:提供运行时类型信息(RTTI)、信号与槽机制、动态属性系统等。
- 1.2.1 QObject说明:是 Qt 框架中最基础的类,几乎所有 Qt 类都直接或间接继承自
QObject。 - 1.2.2 树与父子关系:Qt 对象可以组织成树形结构,每个对象可以有一个父对象和多个子对象。
- 1.2.3 对象名称与查找:每个
QObject对象可以有一个唯一的名称(objectName),用于在对象树中查找。 - 1.2.4 动态属性:Qt 对象可以动态添加属性,这些属性可以在运行时查询和修改。
- 1.2.5 信号与槽:信号是事件的通知,槽是事件的响应函数。使用
QObject::connect()连接信号与槽。信号和槽用于对象之间通信。 - 1.2.6 事件处理:
- 1.2.7 线程支持:
- 1.2.8 注意事项:所有使用信号与槽、动态属性等特性的类必须包含
Q_OBJECT宏。 - 1.3.1 元对象说明:每个
QObject派生类都有一个对应的元对象,用于描述类的元信息(如类名、信号、槽、属性等)。 - 1.3.2 元对象编译器:
- 1.3.3 反射(Reflection):
- 1.3.4 动态调用:通过元对象系统,可以在运行时动态调用对象的信号、槽和属性。
- 1.4.1 Q_OBJECT:所有使用元对象系统的类必须包含
Q_OBJECT宏。该宏会触发moc生成元对象代码。 - 1.4.2 QMetaObject:是 Qt 元对象系统的核心类,提供了对类元信息的访问。
- 1.4.3 Q_PROPERTY:是一个宏,用于声明类的属性,支持属性绑定、动画、序列化等功能。
- 1.4.4 Q_INVOKABLE:是一个宏,用于将方法标记为可通过元对象系统调用的方法。
# 02.并发与多线程
- 2.2.1 QThread类:是 Qt 中用于管理线程的类。每个
QThread对象代表一个线程,可以通过start()启动线程。 - 2.2.2 线程与事件循环:Qt 的事件循环(
QEventLoop)是线程的核心,用于处理信号与槽、定时器、网络事件等。 - 2.2.3 线程安全:
- 2.3.1 继承QThread:通过继承
QThread并重写run()方法来实现自定义线程逻辑。 - 2.3.2 moveToThread:
- 2.4.1 并行计算:
- 2.4.2 并行映射:
- 2.5.1 互斥锁QMutex:
QMutex用于保护共享资源,防止多个线程同时访问。 - 2.5.2 QReadWriteLock:
QReadWriteLock允许多个线程同时读取共享资源,但写操作是独占的。 - 2.5.3 QSemaphore:
QSemaphore用于控制对共享资源的访问数量。 - 2.5.4 QWaitCondition:
QWaitCondition用于线程间的条件等待和唤醒。 - 2.5.5 QAtomic:
# 03.文件与IO系统
# 06.QT事件系统
# 07.信号和槽机制
- 7.1.1 信号与槽:主要是实现对象之间的松耦合通信。
- 7.1.2 信号(Signal):C++中声明的特殊成员函数,用于在特定事件发生时发出通知。
- 7.1.3 槽(Slot):槽是普通的成员函数,用于响应信号。
- 7.1.4 连接(Connect):使用
QObject::connect()函数将信号与槽连接起来。当信号发出时,连接的槽函数会被自动调用。 - 7.2.1 声明信号与槽:使用
signals和slots关键字声明信号和槽。 - 7.2.2 连接信号与槽:连接信号(Signal)与槽(Slot)核心函数。它的作用是将一个对象的信号与另一个对象的槽函数关联起来,当信号被触发时,槽函数会自动执行。
- 7.2.3 Lambda表达式:Lambda 表达式可以作为槽函数使用。
上次更新: 2026/06/10, 11:13:41