Qt:关闭窗口时防止内存泄漏

时间:2019-05-15 19:07:23

标签: qt

我可以为Qt找到的所有示例代码都显示了使用new创建对象的代码,但是在任何关闭窗口的情况下都不会清除它们。除非Qt自动销毁它们,否则这似乎是错误的。

Qt关闭时,Qt会自动销毁窗口中的所有GUI对象吗,还是我自己应该为通常的其他事情负责?

如果我对此负责,是否有“礼貌”的方式?还是我可以保留一个对象矢量来销毁它们,并以与它们创建时相反的顺序运行它,对每个对象调用delete?

例如,这是使用BorderLayout的示例:

Window::Window()
{
    QTextBrowser *centralWidget = new QTextBrowser;
    centralWidget->setPlainText(tr("Central widget"));

    BorderLayout *layout = new BorderLayout;
    layout->addWidget(centralWidget, BorderLayout::Center);
    layout->addWidget(createLabel("North"), BorderLayout::North);
    layout->addWidget(createLabel("West"), BorderLayout::West);
    layout->addWidget(createLabel("East 1"), BorderLayout::East);
    layout->addWidget(createLabel("East 2") , BorderLayout::East);
    layout->addWidget(createLabel("South"), BorderLayout::South);
    setLayout(layout);

    setWindowTitle(tr("Border Layout"));
}

此代码使用新的QTextBrowser或新的QLabel创建布局和6个小部件。它甚至没有试图记住它们以便以后销毁。

0 个答案:

没有答案