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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt::DeleteOnClose для всех  (Прочитано 4371 раз)
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« : Декабрь 18, 2013, 22:49 »

Логика моей задачи такова, что любой виджет я создаю по new, и по его закрытию он мне больше совершенно не нужен. Значит каждому надо писать
 
Код:
setAttribute(Qt::WA_DeleteOnClose, true);
Иногда я это могу забыть, что конечно чревато утечками памяти.
Нет ли глобального способа, на уровне QApplication, заставить все виджеты удаляться при их закрытии?
Записан
ammaximus
Гость
« Ответ #1 : Декабрь 18, 2013, 23:46 »

Если любому объекту QObject назначать родителя, то при удалении родителя, удалятся и потомки. Флаги эти тоже работают через родителей, так что утечки памяти не будет, по завершению все удалится в любом случае. Если тебе критично освобождать память, группируй их в категории и назначай специальному родителю, которого удалишь. Вообще, конечно, проще ничего не забывать)
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #2 : Декабрь 19, 2013, 00:23 »

можно создать наследников QWidget/QDialog, добавить туда этот атрибут в конструктор и везде в программе использовать эти унаследованные классы.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #3 : Декабрь 19, 2013, 11:08 »

ammaximus, kambala, спасибо.
Просто мне казалось, что логичнее удалять виджеты (диалоги) после их использования и закрытия. Ну что ж поделаешь! Буду стараться следить.
А создавать класс из-за одного атрибута не очень хочется. Хотя, конечно, это вариант.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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