Skip to content

QObject

Qt 框架中所有对象的基类,提供了QT开发框架中核心功能。

1 信号槽

QObject 支持 Qt 中强大的信号与槽机制,使得对象之间的通信更加灵活。一个对象可以发射信号,而其他对象可以连接到这些信号并执行相应的槽函数。

blockSignals 断开链接
connectNotify 监听链接
disconnectNotify 监听断开链接

2 对象树

QObject 支持以树形结构管理对象,每个 QObject 可能有一个父对象,并且可以有零个或多个子对象。这种父子关系有助于在应用程序中组织对象,同时也方便了对象的内存管理。

3 动态属性系统

QObject 提供了属性系统,允许对象定义和管理属性。属性可以用于存储对象的状态信息,并且可以与信号和槽一起使用,以实现属性值的自动更新和通知。

4 事件处理

QObject 支持事件处理,对象可以重写事件处理函数来处理特定类型的事件,如键盘事件、鼠标事件等。

5 元对象系统

元对象系统(Meta-Object System):QObject 使用元对象系统来实现信号与槽、属性系统等功能,元对象系统是 Qt 中的一个重要特性,提供了在运行时进行对象反射和元信息访问的功能。

6 线程安全

7 对象名管理

QObject::objectName();
QObject::setObjectName();

objectName 默认为空,不唯一。

7.1 对象查找

findChild、findChildren

QList<QLabel*> labs = win->findChildren<QLabel*>("lab");

7.2 样式表设置

QPushButton *button = new QPushButton("Click me"); button->setObjectName("myButton");
QPushButton#myButton { 
    background-color: blue; 
    color: white; 
    border: 1px solid black; 
}

7.3 调试和日志

7.4 对象通讯

Receiver *receiver = parent()->findChild<Receiver*>("receiverObject");

8 内存管理

内存管理:QObject 提供了内存管理功能,包括对象的自动销毁和父子关系的管理,从而简化了对象的生命周期管理。