QBoxLayout的所有者是否成为所有布局小部件的所有者?

Ant*_*ton 16 c++ qt

我在这里看一下这个例子,并想知道是否没有内存泄漏.我有红色的文章谈论删除子喷气机内存泄漏.但是,虽然QWidgets确实保留了添加到其中的窗口小部件的所有权,但布局却没有.

从QT代码看,具有布局的父级获得了此布局的所有小部件的所有权.但是我在文档中看不到任何这方面的参考.

Window::Window()
{
 editor = new QTextEdit();
 QPushButton *sendButton = new QPushButton(tr("&Send message"));

 connect(sendButton, SIGNAL(clicked()), this, SLOT(sendMessage()));

 QHBoxLayout *buttonLayout = new QHBoxLayout();
 buttonLayout->addStretch();
 buttonLayout->addWidget(sendButton);
 buttonLayout->addStretch();

 QVBoxLayout *layout = new QVBoxLayout(this);
 layout->addWidget(editor);
 layout->addLayout(buttonLayout);

 setWindowTitle(tr("Custom Type Sending"));
}
Run Code Online (Sandbox Code Playgroud)

dsc*_*ulz 21

布局管理:

使用布局的提示

使用布局时,在构造子窗口小部件时不需要传递父窗口.布局将自动重新显示窗口小部件(使用QWidget :: setParent()),以便它们是安装布局的窗口小部件的子窗口.

注意:布局中的窗口小部件是安装布局的窗口小部件的子项,而不是布局本身的子项.窗口小部件只能将其他窗口小部件作为父窗口,而不是布局.

您可以在布局上使用addLayout()嵌套布局; 然后内部布局成为插入布局的子项.

  • 没找过这个。谢谢您的回答。 (2认同)