QObject:所有Qt对象的基类

QObject是Qt对象模型的核心。该模型的主要功能就是信号和槽机制。


Q_OBJECT宏

Q_OBJECT宏用于启用元对象特性,例如动态属性、信号和槽。
对于实现信号和槽的任何对象,都必须添加Q_OBJECT宏。
Q_OBJECT插入位置

信号和槽

Qt的信号和槽机制(Signals & Slots)
信号和槽(Signals & Slots)用于对象之间的通信。信号和槽机制是Qt的核心特性,可能也是与其他框架所提供的特性最不同的部分。信号和槽是由Qt的元对象系统(The Meta-Object System)实现的。

objectName

Qt对象可以拥有自己的名称,objectName属性保存对象的名称。它的类型是QString,可以通过函数void setObjectName(const QString &name)设置对象名称。

QObjects将自己组织在对象树中。

Qt对象树和QObject的构建/销毁顺序
当你使用一个对象作为父对象创建一个新的QObject时,该对象将自动将其添加到父对象的children()列表中。父级拥有对象的所有权。 也就是说,它将在其析构函数中自动删除其子级。你可以通过:findChild()函数根据对象名称或类型查找一个对象,findChildren()函数根据对象名称或类型查找一组对象。

T    findChild(const QString &name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const
QList    findChildren(const QString &name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const

由于没有复制构造函数,QObject的子类就不能作为要存储在容器类中的值,只能存储指针。

你可能感兴趣的:(c++,qt,qt5)