Qt文档阅读笔记-Qt对象模型及deleteLater()杂记
最近主要在擼官方的自學(xué)包。在此作下簡(jiǎn)短的筆記:
?
Qt對(duì)象模型
Qt包含的1500個(gè)類可以分為2類
? ? ?1. identify types;
? ? ?2. value types;
?
identify types:
? ? ?1. 從QObject繼承下來(lái)的類;
? ? ?2. 通過(guò)元對(duì)象系統(tǒng)擴(kuò)展C++的動(dòng)態(tài)性質(zhì);
? ? ?3. 不能用拷貝構(gòu)造函數(shù),并且"="符號(hào)相當(dāng)與delete;
? 如:QWidget,QWindow,QApplication,QEventLoop,QThread,QFile,QTcpSocket
?
value types是標(biāo)志的C++類:
? ? ?1. 如QColor,QEventLoop,QDataStream,QMetaType;
? 2. 100個(gè)value types使用copy-on-write模式(隱式共享);
? 如:QString,QByteArray,QList,QVector,QHash,QCache,QDir,QPixmap,QImage,Qrush,QPen
??
這里介紹下deleteLater()函數(shù)
當(dāng)某個(gè)對(duì)象在處理一個(gè)事件時(shí),這個(gè)對(duì)象不能被刪除;
QObject::deleteLater()槽函數(shù)調(diào)度刪除object對(duì)象;
>當(dāng)Object回到事件循環(huán)中,對(duì)象將會(huì)被刪除;
>線程中如果沒(méi)有事件循環(huán),那么當(dāng)線程完成后就會(huì)被刪除:
connect(threadPtr, &QThread::finished, threadPtr, &QThread::deleteLater);
注意:同一個(gè)對(duì)象調(diào)用多次deleteLater()不會(huì)照成多重刪除。
總結(jié)
以上是生活随笔為你收集整理的Qt文档阅读笔记-Qt对象模型及deleteLater()杂记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: MySQL笔记-binlog理论及bin
- 下一篇: canvas笔记-closePath函数