2013-05-06 150 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