我有一個日誌界面,允許用戶對Logger
進行子類化並覆蓋log()
虛擬功能,以便用戶可以創建自己的記錄器。有一位經理跟蹤所有註冊的日誌記錄方法(即控制檯,系統日誌,Widget等)如何防止在QT中的deleteChildren()過程中刪除子項?
我創建了一個顯示日誌的QListWidget Logger。不幸的是,它由日誌記錄管理器擁有,因爲它是一個QObject,它也是MainWindow的子節點。這會導致兩個對象試圖在應用程序關閉時將其刪除。
第一次圍繞QObjects->deleteChildren()
被調用並刪除它。然後Loggin gmanager再次嘗試和CRASH。
如何防止在deleteChildren()
期間銷燬特定的QObject?這是一個壞主意嗎?
我在嘗試推薦#3,因爲我認爲這可能是最好的選擇。雖然這是我第一次進入QSharedPointer,所以*手指交叉*。 – shadowland