Это не кажется простым. В основном, я добавляю QPushButtons через функцию в макет, и когда функция выполняется, я хочу сначала очистить макет (удалив все QPushButtons и все остальное там), потому что больше кнопок просто добавляются в scrollview.
заголовок
QVBoxLayout* _layout;
каст
void MainWindow::removeButtonsThenAddMore(const QString &item) {
//remove buttons/widgets
QVBoxLayout* _layout = new QVBoxLayout(this);
QPushButton button = new QPushButton(item);
_layout->addWidget(button);
QPushButton button = new QPushButton("button");
_layout->addWidget(button);
QWidget* widget = new QWidget();
widget->setLayout(_layout);
QScrollArea* scroll = new QScrollArea();
scroll->setWidget(widget);
scroll->show();
}