qt中destroyed和close窗口有什麼區別

qt的assistant中關於destroyed只有QObject類的該信號,其中說的很清楚“對象被destroyed前將立即發送該信號,其不能夠被阻塞。該對象的所有子對象在信號發送以後會被立即銷燬。”
而QWidget與QWindow差不多都是釋放窗口相關資源。
QWidget的close槽函數是像widget發送QCloseEvent,如果widget未設置Qt::WA_DeleteOnClose標誌的話,將隱藏widget,並不會銷燬相關資源。如果設置了該標誌,那麼會再發送destroy信號,銷燬相關資源。
QWindow的close槽是調用destroy來銷燬窗口資源的。不過我們一般不直接使用qWindow。
綜上,兩者之間的區別就是close一般只是將窗口隱藏,而窗口實體實際上還存在於內存中,等待再次顯示。而destroy則銷燬窗體。

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