crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Удаление виджета за ненадобностью.
edwardoid
  опции профиля:
сообщение 14.6.2011, 12:17
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 171
Регистрация: 1.5.2008
Из: Ереван, Армения
Пользователь №: 164

Спасибо сказали: 0 раз(а)




Репутация:   0  


Есть объект QMdiArea в котором несколько окон( класс MDIChild наследует QMdiSubWindow). Проблема в том, что чем больше оконо я открываю( создаю экземпляры MDIChild) тем больше памяти выделяется(очевидно). Но когда закрываю окна, память не высвобождается. Судя по всему Qt оставляет удаление да потом, когда все прилжение закрывать понадобится. Так мне не надо. Потому как постоянно память выделяется и остается занятой, хотя сами объекты не нужны совсем.
Вопрос: Как освободить ненужную память?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
silver47
  опции профиля:
сообщение 14.6.2011, 13:25
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


mdiChild1->deleteLater(); - недостаточно. Деструктор не будет вызван. Необходимо в конструкторе класса напрямую указать:
this->setAttribute(Qt::WA_DeleteOnClose);


Сообщение отредактировал silver47 - 14.6.2011, 13:25
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 13:38