我有一个Qt4应用程序,它有很多对话框。我很想知道QDialog是否删除了它的布局。举个例子:
class MyDialog : public QDialog {
public:
MyDialog(QWidget* _parent = 0) : QDialog(_parent) {
//instantiate some widgets
m_layout = new QGridLayout(this);
setLayout(m_layout)
//add some widgets to the layout
}
~MyDialog() {
//Do I need this code? or will the parent delete the layout?
//delete m_layout;
}
private:
QGridLayout* m_layout;
}
所以我需要编写自己的析构函数吗?或者QDialog会处理 m_layout 的内存管理吗?
答案 0 :(得分:1)
QDialog
将在销毁时删除QLayout
。您无需在析构函数中删除布局。
另请参阅:http://doc-snapshot.qt-project.org/qt5-stable/qtwidgets/qwidget.html#setLayout