Russian Qt Forum

Qt => Общие вопросы => Тема начата: Maksim от Июль 28, 2010, 12:23



Название: Дети должны жить дольше чем их родители :-)
Отправлено: Maksim от Июль 28, 2010, 12:23
Всем Сдраствуйте!

Такой вопрос: Как предотвратить удаления дитя виджет, когда погибает родитель (модальный диалог)?

(вопрос родился по ходу воплотворения context sensitive help и проблемой с модальными диалогами. Для того, чтобы хелп виджет не прятался за модальным диалогм, прешлось его отдать диалогу на адоптацию (репарент). нот вот только когда умирает диалог, умирает и мой хелп виджет -> ето не можно  ;D )

Max

П.С.: первый пост, к то му же писал на траслите, что не так I'm sry  ::)


Название: Re: Дети должны жить дольше чем их родители :-)
Отправлено: vipet от Июль 28, 2010, 12:39
Перед смертью нового родителя назначать назад старого предка


Название: Re: Дети должны жить дольше чем их родители :-)
Отправлено: Maksim от Июль 28, 2010, 12:43
в том то и вся проблема, что сигнал destroy от родителя доходит силно поздно, там дитя уже умер.
сигнал destroy от дитя тоже поздно, убиение уже не могу предотвратить.


Название: Re: Дети должны жить дольше чем их родители :-)
Отправлено: SABROG от Июль 28, 2010, 13:08
При закрытии диалогов они, как правило, не удаляются автоматически, а просто прячутся. Думаю нужно отловить момент закрытия диалога и переназначить родителя в этот момент. Соответственно нужно будет переопределить closeEvent() у диалога или вызывать QObject::installEventFilter.


Название: Re: Дети должны жить дольше чем их родители :-)
Отправлено: Maksim от Июль 28, 2010, 13:40
Да, наверно надо попробовать в етом напровлении (отлавливать QEvent::Close a не QEvent::Destroy).
почему то зациклился на дестрое....
Спасибо!Буду тыкать...

П.С.: одна голова хорошо, а форум луче  ;)