Qt文檔閱讀筆記-Qt對象模型及deleteLater()雜記

最近主要在擼官方的自學包。在此作下簡短的筆記:

 

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()不會照成多重刪除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章