1

在我的 Qt 小部件中,我有时会收到此错误:

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 窗口打开的原因。

关于如何消除此问题的任何建议都会有所帮助。

4

1 回答 1

0

delete dialog;与其使用,不如使用dialog->deleteLater();。我假设小代码部分位于“”引用的对象的插槽内this,直接删除是ResizeDialog *dialog = new ResizeDialog(this);影响父对象的麻烦之源this

于 2013-05-06T08:53:54.297 回答