【发布时间】:2014-03-25 18:57:01
【问题描述】:
我在对话框中有一个QWidget。在程序运行的过程中,几个QCheckBox * 对象被添加到布局中,如下所示:
QCheckBox *c = new QCheckBox("Checkbox text");
ui->myWidget->layout()->addWidget(c);
这适用于所有复选框。但是,我的对话框中还有一个名为“clear”的QPushButton,当按下它时应该清空myWidget 中的所有内容,使其保持空白,就像添加任何QCheckboxes 之前一样。我一直在网上和文档中四处寻找,但我很难找到一种方法来做到这一点。我发现了this 问题,我认为这与我的问题相似,并尝试了他们的解决方案:
void myClass::on_clear_clicked()
{
while(ui->myWidget->layout()->count() > 0)
{
QLayoutItem *item = ui->myWidget->layout()->takeAt(0);
delete item;
}
}
然而,这似乎没有做任何事情。值得注意的是,我不确定这是否正确地从他的回答中翻译出来;应该如何实现给定的功能有点不清楚,所以我做了我最有根据的猜测。如果有人知道我可以在上面进行哪些更改以使其工作(或只是一种不同的工作方式),将不胜感激。
【问题讨论】: