Задать вопрос

Как очистить QGridLayout?

необходимо очистить GridLayout от виджетов, не удалять сами виджеты из памяти, просто чтобы они не оторбажались. Делается это для того чтобы перерисовать эти виджеты(возможно еще для того чтобы удалить только один виджет, а остальные заново нарисовать). Но у меня виджеты остаются на Layout только не реагируют. использую и эксперементирую со следующим кусочком кода
QList<QmyWdiget*> opened_chat;
...
QLayoutItem *poLI;
QWidget *poW;
while((poLI=opened_chat_layout->takeAt(0))!=0){
poW=poLI->widget();
opened_chat_layout->removeWidget(poW);
opened_chat_layout->removeItem(poLI);
//poW->deleteLater();
// delete poW;
// delete poLI;
}
...
opened_chat.removeAt(index);
...
//дальше перестройка виджетов на Layout
  • Вопрос задан
  • 1928 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Нетология
    Разработчик на C++: Профессия + специализация + нейросети
    12 месяцев
    Далее
  • Skillbox
    Разработчик на C++
    7 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@TriKrista
Я когда-то делал это, примерно, так:
pCheckBox = (QCheckBox*)gridLayout->itemAtPosition(k, 0)->widget();
gridLayout->removeWidget((QCheckBox*)gridLayout->itemAtPosition(k, 0)->widget());
pCheckBox->hide();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы