我知道在不同的帖子中已多次询问过这个问题,但我仍然不相信我的实施是最好的解决方案。
我有一个QVBoxLayout,我在其中添加了一个包含小部件的QHBoxLayout。默认情况下,QVBoxLayout为空。
我使用此代码删除所有布局小部件,但小部件可以触发信号。这节省吗?另外,我宁愿将其更改为递归函数,如https://stackoverflow.com/questions/4272196/qt-remove-all-widgets-from-layout/7077340#=
所示QLayoutItem *child;
while ((child = ui->verticalLayoutAmplitude->takeAt(0)) != 0) {
QLayoutItem * subchild;
while ((subchild = child->layout()->takeAt(0)) != 0) {
delete subchild->widget();
delete subchild;
}
delete child->widget();
delete child;
}
我不明白为什么它如此复杂。
小部件的创建也可能不同 父布局不能用于创建窗口小部件。 因此,只插入了MainWindow作为父类。 我想知道还有什么应该作为父类插入?
for (int i = 0; i < parameterList.size(); ++i) {
QString valueName = parameterList.at(i);
double value = parameter(valueName);
QHBoxLayout * hLayout = new QHBoxLayout(this);
QDoubleSpinBox * spinbox = new QDoubleSpinBox();
QLabel * label = new QLabel();
label->setText(valueName);
spinbox->setValue(value);
hLayout->addWidget(label, 1);
hLayout->addWidget(spinbox, 3);
ui->verticalLayoutAmplitude->addLayout(hLayout);
}