Qt的參考表示:QObject的模糊析構函數?爲QObject的析構函數
所有信號並從該對象被自動斷開,並且爲對象任何未決發佈事件從事件隊列中刪除。但是,使用deleteLater()而不是直接刪除QObject子類通常更安全。
...
警告:刪除一個QObject而未決的活動等待交付可以導致崩潰。如果QObject存在於與當前正在執行的線程不同的線程中,則不能直接刪除它。使用deleteLater()代替,這將導致事件循環在所有未處理事件傳遞給它之後刪除對象。
注意上面部分的粗線。
所以問題是:未決的發佈事件是否從事件隊列中刪除?
謝謝,@TheDarkKnight。讓我們稍微改寫一下這個問題:如果QObject僅存在於一個線程中,那麼調用delete可以安全地調用deleteLater嗎? – agnor
這取決於您要刪除對象的代碼中的點。如果代碼位於槽功能中,那麼[你應該調用deleteLater](http://stackoverflow.com/questions/22376298/when-to-use-deletelater/22378104#22378104) – TheDarkKnight