Название: Определение того что диалог уже был создан. Отправлено: maks от Декабрь 07, 2008, 16:09 Есть несколько участков кода где может создаваться и отображаться один и тот же диалог. Как проверить что диалог уже не создан и он не отображается.
Название: Re: Определение того что диалог уже был создан. Отправлено: Hort от Декабрь 07, 2008, 16:43 Есть несколько участков кода где может создаваться и отображаться один и тот же диалог. Как проверить что диалог уже не создан и он не отображается. решение - первоночально указателю присваивать 0. и потом проверять. и при удалении диалога указатель тоже обнулять. а проверить видимость - isVisible()Название: Re: Определение того что диалог уже был создан. Отправлено: spirit от Декабрь 07, 2008, 17:57 заюзать QPointer (http://doc.trolltech.com/4.4/qpointer.html)
Название: Re: Определение того что диалог уже был создан. Отправлено: maks от Декабрь 07, 2008, 18:37 Использовать указатель не подходит так как диалог у меня не модальный.
Название: Re: Определение того что диалог уже был создан. Отправлено: spirit от Декабрь 07, 2008, 18:38 Использовать указатель не подходит так как диалог у меня не модальный. не понял. в смысле не в куче создается, а в стеке?Название: Re: Определение того что диалог уже был создан. Отправлено: pastor от Декабрь 07, 2008, 18:41 Использовать указатель не подходит так как диалог у меня не модальный. А причем тут модальность? Название: Re: Определение того что диалог уже был создан. Отправлено: BaltikS от Декабрь 07, 2008, 20:59 Можно пойти двумя путями.
1) Создать в конструктуре сразу же диалог и проверять его на isVisible(). Если FALSE - то делать show(); 2) В конструторе создаваемого окна передать флаг Qt::WDestructiveClose. Тогда при его закрытии оно автоматом уничтожиться и при последующих вызовах его нужно будет всегда создавать! Название: Re: Определение того что диалог уже был создан. Отправлено: maks от Декабрь 07, 2008, 21:36 Да диалог создавался не через new.
Название: Re: Определение того что диалог уже был создан. Отправлено: pastor от Декабрь 07, 2008, 22:14 А чем неподходит предложенный выше вариант QPointer + isVisible() ?
Название: Re: Определение того что диалог уже был создан. Отправлено: maks от Декабрь 07, 2008, 23:32 QPointer в самом деле помог. Просто сразу в него не въехал.
|