2013-05-06 185 views
1

在我的Qt物件我有時會收到此錯誤:QT的malloc():smallbin雙鏈表損壞

malloc(): smallbin double linked list corrupted 

它不發生的事情,但我想我已經把範圍縮小它啓動時。

我有一個QGraphicsView和QGraphicsScene,在那裏我正在繪製線條,這些線條存儲在一個向量中。原因是我需要將此點傳遞給另一個庫。一旦我畫點,我有一個選項,如果我點擊一行我會提示到另一個窗口,我可以改變一個線的座標。

ResizeDialog *dialog = new ResizeDialog(this); 
dialog->exec(); 
delete dialog; 

上面的代碼是我用來打開一個新的QDialog的代碼。我知道如果我使用this->close() qt malloc():smallbin雙鏈表損壞不會出現,但然後我失去了QGraphicsView的實例。如果我需要選擇添加更多行,則需要保持打開QGraphicsView窗口的原因。

任何關於如何消除此問題的建議都會有所幫助。

+0

哪個版本的qt? – UmNyobe 2013-05-06 08:38:22

+0

我現在在使用Q4 – spikestar 2013-05-06 08:41:59

+0

能否提供更精確的版本?哪裏錯誤報告?再次,更精確 – UmNyobe 2013-05-06 08:42:39

回答

0

而不是使用delete dialog;,請使用dialog->deleteLater();。我認爲小代碼部分位於由「this」引用的對象的插槽內,並且直接刪除是麻煩的來源,因爲ResizeDialog *dialog = new ResizeDialog(this);會影響父對象this

+0

我試過這個,但我仍然得到錯誤!還有什麼我應該考慮的嗎? – spikestar 2013-05-06 10:55:23