C++ Qt 如何正确删除小部件

问题描述 投票:0回答:1

如果我创建了类似

QPushButton* btn= new QPushButton("Text",this);
的任何小部件,那么父小部件是否会完全销毁所有子小部件,或者只是将它们从其内部列表中删除?

我应该只使用

delete btn;
还是需要使用
btn->deleteLater();
来彻底摧毁它?这些基金有什么区别?

c++ qt widget delete-operator
1个回答
0
投票

QWidget
->
QAbstractButton
->
QPushButton

来自

QWidget
文档:

如果parent

nullptr
,新的小部件将成为一个窗口。如果父级是另一个小部件,则该小部件将成为父级内的子窗口。 当其 parent 被删除时,新的小部件也会被删除。

因此,就您而言,销毁父级将会也会销毁

QPushButton

© www.soinside.com 2019 - 2024. All rights reserved.