本文共 673 字,大约阅读时间需要 2 分钟。
最近主要在撸官方的自学包。在此作下简短的笔记:
Qt对象模型
Qt包含的1500个类可以分为2类
1. identify types;
2. value types;
identify types:
1. 从QObject继承下来的类;
2. 通过元对象系统扩展C++的动态性质;
3. 不能用拷贝构造函数,并且"="符号相当与delete;
如:QWidget,QWindow,QApplication,QEventLoop,QThread,QFile,QTcpSocket
value types是标志的C++类:
1. 如QColor,QEventLoop,QDataStream,QMetaType;
2. 100个value types使用copy-on-write模式(隐式共享);
如:QString,QByteArray,QList,QVector,QHash,QCache,QDir,QPixmap,QImage,Qrush,QPen
这里介绍下deleteLater()函数
当某个对象在处理一个事件时,这个对象不能被删除;
QObject::deleteLater()槽函数调度删除object对象;
>当Object回到事件循环中,对象将会被删除;
>线程中如果没有事件循环,那么当线程完成后就会被删除:
connect(threadPtr, &QThread::finished, threadPtr, &QThread::deleteLater);
注意:同一个对象调用多次deleteLater()不会照成多重删除。
转载地址:https://it1995.blog.csdn.net/article/details/106100255 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!