Уже очень поздно, но если кто-то найдет здесь, как я, вот мое решение:
Я попытался ответить @braggPeaks (это так же, как ответ @Frank Osterfeld), но это не удалось. Затем я изменил, как это, и это работает как шарм. (Я понятия не имею, почему это работает, потому что в моем макете нет пустых элементов, но я все равно должен проверить, есть ли у него.)
for (int i = 0; i < this->layout->count(); ++i) {
QWidget *w = this->layout->itemAt(i)->widget();
if(w != NULL)
w->setVisible(false);
}