Название: Вопрос про QDialog и event loop Отправлено: Swa от Февраль 16, 2016, 15:00 Всем привет.
Ситуация такая, в приложении открывается документ и юзер может открывать разные диалоговые окна для настройки каких-либо параметров документа. Окна - наследники QDialog с кнопками Сохранить\Отмена. При этом в главном окне есть таймер, по таймауту вызывается слот и внутри этого слота текущий документ может быть закрыт. Если открыто диалоговое окно, то при сохранении параметров мы обратимся по нулевому указателю. Я знаю, что это происходит потому, что QDialog имеет свой event loop и продолжает обрабатывать события приложения. Кто что посоветует, как можно решить эту проблему? Название: Re: Вопрос про QDialog и event loop Отправлено: Igors от Февраль 16, 2016, 15:33 Завести QPointer<QDialog> и при таймауте решать - то ли закрыть и документ и диалог, то ли ничего не закрывать, пусть юзер решит в диалоге.
Название: Re: Вопрос про QDialog и event loop Отправлено: Racheengel от Февраль 16, 2016, 18:39 Просто перед "закрытием" документа насильно закрыть открытые для него диалоги.
Название: Re: Вопрос про QDialog и event loop Отправлено: Swa от Февраль 17, 2016, 12:41 Спасибо за ответы всем, сделал пока вот так:
Код: QList<QDialog*> allDialogs = this->findChildren<QDialog*>(); |