Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Cortex от Октябрь 20, 2014, 11:23



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


Название: Re: Закрытие дочерних окон
Отправлено: Bepec от Октябрь 20, 2014, 11:33
Event'ы это действия пользователя. Простое удаление не вызовет closeEvent.
Грязный хак - вызывать в деструкторе  и в closeEvent одну и ту же функцию :)


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


Название: Re: Закрытие дочерних окон
Отправлено: Cortex от Октябрь 20, 2014, 13:49
OK. Значит, destroyed() вызывается ДО входа в деструктор. Насколько я понял, я должен прикрутить этот сигнал к своему слоту?


Название: Re: Закрытие дочерних окон
Отправлено: Igors от Октябрь 20, 2014, 14:32
OK. Значит, destroyed() вызывается ДО входа в деструктор. Насколько я понял, я должен прикрутить этот сигнал к своему слоту?
За время потраченное на такие уточнения - уже и прикрутили бы  :)