Russian Qt Forum
Июля 04, 2025, 07:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Очистка чилдренов...  (Прочитано 3070 раз)
Григорий
Гость
« : Апреля 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.04 секунд. Запросов: 23.