Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 如何销毁具有特定类型的所有子窗口小部件_Qt - Fatal编程技术网

Qt 如何销毁具有特定类型的所有子窗口小部件

Qt 如何销毁具有特定类型的所有子窗口小部件,qt,Qt,我使用QFrame上的循环和一些其他小部件创建了一些QPushButtons // Creation of some other widgets here ... for (int i = 0; i < 100; ++i) QPushButton *b = new QPushButton( this ); b->show(); } //在此处创建一些其他小部件。。。 对于(int i=0;ishow(); } 现在,我想销毁所有QpushButton,而不接触其他

我使用
QFrame
上的循环和一些其他小部件创建了一些QPushButtons

// Creation of some other widgets here ...
for (int i = 0; i < 100; ++i)
    QPushButton *b = new QPushButton( this );
    b->show();
}
//在此处创建一些其他小部件。。。
对于(int i=0;i<100;++i)
QPushButton*b=新的QPushButton(本);
b->show();
}
现在,我想销毁所有QpushButton,而不接触其他小部件,如何定位它们


注意:我没有使用布局

保留所有QpushButton的集合,并在集合中迭代以删除它们。

保留所有QpushButton的集合,并在集合中迭代以删除它们。

您可以通过以下方式找到所有按钮:

QList<QPushButton *> allPButtons = parentWidget.findChildren<QPushButton *>();

您可以通过以下方式找到所有按钮:

QList<QPushButton *> allPButtons = parentWidget.findChildren<QPushButton *>();

您可以将其简化为一行:
qdeletall(parentWidget.findChildren())您可以将其简化为一行:
qdeletall(parentWidget.findChildren())
QList<QPushButton *> Buttons;    


for (int i = 0; i < 100; ++i)
    QPushButton *b = new QPushButton( this );
    Buttons << b;
    b->show();

}
qDeleteAll(allButtons);
allButtons.clear();