2-1moc和QObject
moc和QObject
元对象系统(meta-object-system)
Qt对标准C++进行了扩展,引入了一些新的概念和功能
-
QObject类是所有使用元对象系统的类的基类
-
QObject派生的类在类的private部分声明Q_OBJEDT宏
- MOC才能识别并进行预处理
- 可以不用,同样能进行自动的内存管理,但最好使用
-
MOC为每个QObject的子类提供必要的代码
MOC(元对象编译器)是一个预处理器,将Qt的特性程序转换为标准C程序,再进行C的编译
注意
-
QObject不支持拷贝
- 在基类中,将拷贝构造函数和赋值运算符重载函数设置为私有,并使用了Q_DISABLE_COPY()的宏
-
QObject对象以树结构组织自己
- 当以另一个对象作为父对象创建QObject(即将基类初始化为该对象),这个对象会自动将自身添加到父对象的子对象列表中
- 父对象删除时,子对象自动被删除
- 可以使用findChild()和findChildren()按名称和可选类型查找对象
|
发布于