我可以为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个小部件。它甚至没有试图记住它们以便以后销毁。