Используя Qt5, я пытаюсь разработать приложение с виджетами, расположенными в столбцах.Виджеты создаются с помощью следующего кода:
QWidget *area = new QWidget(centralWidget);
QHBoxLayout *layout = new QHBoxLayout(area);
for (int i=0; i<n; i++) {
columns.push_back(new QWidget(area));
layout->addWidget(columns[i]);
layouts2.push_back(QVBoxLayout());
labels.push_back(new QVector<QLabel *>);
for (j=0; j<m; j++) {
labels[i].push_back(new QLabel(columns[i]));
layouts2[i]->addWidget(labels[i][j]);
}
}
Позже, метки могут быть добавлены или удалены из столбцов.Код для удаления метки:
QLabel *label = labels[i][j];
layouts2[i]->removeWidget(label);
delete label;
labels[i].pop_back();
В конечном итоге в столбце удаляются все метки.Я надеялся, что виджет столбца, даже без дочерних элементов, будет служить заполнителем и оставит дисплей, как и раньше, с пустым местом, где должен быть пустой столбец.Вместо этого столбец удаляется с дисплея и отображаются только столбцы n-1.Что не так, и как я могу это исправить?