Mam QVBoxLayout wewnątrz scrollArea. Dynamicznie dodajemy QFormLayout s.Usuń wszystkie dzieci z QVBoxLayout
widgetTreeStruct* tree = new widgetTreeStruct(QString::number(numberOfGraphs));
QFormLayout* layout = tree->getTree(); // get QFormLayout
ui->verticalLayout_2->addLayout(layout); //add to the vertical layout
W pewnym momencie muszę usunąć wszystkie dodane QFormLayouts z QVBoxLayout.
Próbowałem na kilka sposobów, aby to zrobić.
- Korzystanie qDeleteAll()
qDeleteAll(ui->verticalLayout_2->children());
poz 2.delete jeden po drugim
QLayoutItem* child;
while((child = ui->verticalLayout_2->takeAt(0)) != 0)
{
if(child->widget() != 0)
{
delete child->widget();
}
delete child;
}
Ale nic się nie stało. Jedyną rzeczą jest, kiedy próbuję dodawać elementy do QVBoxLayout ponownie nowe elementy są dodawane do wcześniej dodanych elementów.
czuję, że muszę przerysować, przemalować, aktualizacji, odświeżyć lub coś. Próbowałem ui->verticalLayout_2->update();
, ale nie działał dla mnie.
Co powinienem zrobić?
Jest to * właściwy sposób wykonania tej czynności. +1 –