Если ваш Qt Layout уже использует макеты, то лучше всего было бы оставить какое-то место для элементов управления во время выполнения в дереве макетов или, возможно, даже пустой макет только для них. Макеты имеют возможность динамически добавлять или удалять виджеты и вложенные макеты, что решает проблему. Если вы хотите вставить новые виджеты сразу после удаления старых, интерфейс может замигать, так как qt попытается использовать временно освобожденное пространство. Это может замедлить работу приложения, если есть какие-либо медленные виджеты рендеринга.
Другая задача - вставить пустой виджет - это больше похоже на подход ASP.NET. Это немного более грубый метод, но может быть хорошим способом избежать мерцания интерфейса. Это предотвратит повторное использование пространства макетом, даже если вы не отображаете какой-либо виджет и оставляете неиспользуемое пространство - это может означать, что после некоторого взаимодействия здесь может что-то появиться - если это желаемое поведение, я бы предложил этот способ.
Если у вас есть несколько наборов элементов управления, работающих всегда в одних и тех же группах, вы можете подумать об использовании QStackedWidget, который позволяет создавать эти виджеты уже на этапе проектирования и переключаться между группами во время выполнения.