LINUX.ORG.RU

В дополнение к первому комментарию: удаляй не сами дочерние layout-ы, а QLayoutItem, в которых они содержатся

XMs ★★★★★
()
Ответ на: комментарий от Egor12

Обходи все элементы layout'а с помощью QLayout::count() и QLayout::itemAt(int). Проверяй каждый элемент на предмет, является ли он layout'ом с помощью QLayoutItem::layout(). В случае, если он им является, извлекай его с помощью QLayoutItem::takeAt(int). Только не забывай вызвать для него delete, а то получишь memory leak.

m0rph ★★★★★
()
Ответ на: комментарий от Egor12
for (int i = 0; i < layout->count();)
  {
	QLayoutItem *item = layout->itemAt(i);
	if (item->layout() != nullptr)     // Check whether item contains a layout
		delete layout->takeAt(i);  // Delete item with layout on it
	else i++;
  }

// Компилировать не пробовал, возможны ошибки

XMs ★★★★★
()
Ответ на: комментарий от Egor12

Ребят новая проблема у меня. Когда я удаляю все из layout на widget все остается, когда я начинаю проверять на наличие элементов в layout выводит 0. Как это решить?

Egor12
() автор топика
Ответ на: комментарий от Egor12

Если бы я не заглянул в этот тред, ты бы так и остался без ответа. Не отвечай себе же, если хочешь получить ответ — никому уведомления не придёт. Создай отдельный тред (а этот пометь как решённый), чтобы больше народу увидело

XMs ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.