crossplatform.ru

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

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


Участник
**

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

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




Репутация:   0  


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


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(edwardoid @ 14.6.2011, 15:17) *
Но когда закрываю окна, память не высвобождается.
Нужно делать так, как сказал silver47, т.е. QWidget::setAttribute(Qt::WA_DeleteOnClose);
Цитата(silver47 @ 14.6.2011, 16:25) *
mdiChild1->deleteLater(); - недостаточно. Деструктор не будет вызван.
Это почему?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 20.4.2024, 9:35