一、事件循环机制
1、事件处理机制:事件是一个类对象具有的特定的类型,事件多数情况下被分发到一个事件队列中,如果队列中有事件就不停的将事件发送给QObject,如果队列中无事件发生,就阻塞等待。
2、QCoreApplication:exec();//开启时间循环
QCoreApplication:exit();//结束事件循环
事件循环伴随Qt程序的整个运行周期。
二、内存管理机制
1、原理:利用对象的父子管理来管理内存,首先明白这里的父子关系不是继承中的类与类的父子关系,这里是对象间的父子关系(即父子部件)。在对象创建时,给该对象分配指定父部件指针来管理它。当父部件被销毁释放时,父部件会先遍历其所有子部件,并依此销毁释放。
具体实现:
大致就是在QObject中有一个list容器,比如定义
QList <QObject *>LO;//在LO中保存子部件的地址
bool isok = false;//标志位:表示子部件地址是否成功写入list
class QObject
{
//构造函数
QObject(QObject *parent)
{
if(parent != NULL)//如果传入的地址不为空
{
parent->LO.insert(this);//将this地址传入parent
isok = true;//传入成功
}
}
};