Russian Qt Forum
Ноябрь 24, 2024, 16:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Очистка чилдренов...  (Прочитано 2953 раз)
Григорий
Гость
« : Апрель 18, 2012, 14:43 »

  Уважаемые форумчане , подскажите как можно вычистить все виджеты входящие в QVBoxLayout...?
Записан
mutineer
Гость
« Ответ #1 : Апрель 18, 2012, 14:48 »

Вычистить? Тряпкой протереть, чтоли?
Записан
Григорий
Гость
« Ответ #2 : Апрель 18, 2012, 14:51 »

Вычистить? Тряпкой протереть, чтоли?

уточняю , вычистить в данном случае удалить из памяти с поверхности QLayout
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #3 : Апрель 18, 2012, 14:52 »

QLayoutItem * QLayout::takeAt ( int index ) [pure virtual]

Must be implemented in subclasses to remove the layout item at index from the layout, and return the item. If there is no such item, the function must do nothing and return 0. Items are numbered consecutively from 0. If an item is removed, other items will be renumbered.
The following code fragment shows a safe way to remove all items from a layout:

Код
C++ (Qt)
QLayoutItem *child;
 
while ((child = layout->takeAt(0)) != 0) {
    ...
    delete child;
}

Удалять ещё и child->widget()
Записан
mutineer
Гость
« Ответ #4 : Апрель 18, 2012, 14:52 »

например перебрать их при помощи QLayoutItem * QLayout::itemAt ( int index ) и вызвать у них deleteLater()
Записан
Григорий
Гость
« Ответ #5 : Апрель 18, 2012, 15:11 »

QLayoutItem * QLayout::takeAt ( int index ) [pure virtual]

Must be implemented in subclasses to remove the layout item at index from the layout, and return the item. If there is no such item, the function must do nothing and return 0. Items are numbered consecutively from 0. If an item is removed, other items will be renumbered.
The following code fragment shows a safe way to remove all items from a layout:

Код
C++ (Qt)
QLayoutItem *child;
 
while ((child = layout->takeAt(0)) != 0) {
    ...
    delete child;
}

Удалять ещё и child->widget()

Спасибо )) Вопрос закрыт
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.105 секунд. Запросов: 23.