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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Закрытие дочерних окон  (Прочитано 2199 раз)
Cortex
Гость
« : Октябрь 20, 2014, 11:23 »

Здравствуйте! Столкнулся с проблемой: при закрытии родительского окна все дочерние (созданные с параметром Parent) просто убиваются через деструкторы, при этом ивенты у них не генерятся (я не обнаружил). В документации Qt сказано только о том, что closeevent() возникает, если пользователь сам закрывает окно. Если его убивает родитель, то я не получаю сигналов об этом (а между тем нужно сохранить данные дочерних окон перед закрытием, причём желательно из самих «дочек»). Что делать ©?
Записан
Bepec
Гость
« Ответ #1 : Октябрь 20, 2014, 11:33 »

Event'ы это действия пользователя. Простое удаление не вызовет closeEvent.
Грязный хак - вызывать в деструкторе  и в closeEvent одну и ту же функцию Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Октябрь 20, 2014, 13:40 »

Здравствуйте! Столкнулся с проблемой: при закрытии родительского окна все дочерние (созданные с параметром Parent) просто убиваются через деструкторы, при этом ивенты у них не генерятся (я не обнаружил). В документации Qt сказано только о том, что closeevent() возникает, если пользователь сам закрывает окно. Если его убивает родитель, то я не получаю сигналов об этом (а между тем нужно сохранить данные дочерних окон перед закрытием, причём желательно из самих «дочек»). Что делать ©?
Выглядит банально - значит очень возможно есть в букваре. Через пару минут можно найти напр сигнальчик QObject::destroyed()
Записан
Cortex
Гость
« Ответ #3 : Октябрь 20, 2014, 13:49 »

OK. Значит, destroyed() вызывается ДО входа в деструктор. Насколько я понял, я должен прикрутить этот сигнал к своему слоту?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Октябрь 20, 2014, 14:32 »

OK. Значит, destroyed() вызывается ДО входа в деструктор. Насколько я понял, я должен прикрутить этот сигнал к своему слоту?
За время потраченное на такие уточнения - уже и прикрутили бы  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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