Russian Qt Forum
Декабря 14, 2025, 02:43
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Определение того что диалог уже был создан.
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Определение того что диалог уже был создан. (Прочитано 5691 раз)
maks
Гость
Определение того что диалог уже был создан.
«
:
Декабря 07, 2008, 16:09 »
Есть несколько участков кода где может создаваться и отображаться один и тот же диалог. Как проверить что диалог уже не создан и он не отображается.
Записан
Hort
Гость
Re: Определение того что диалог уже был создан.
«
Ответ #1 :
Декабря 07, 2008, 16:43 »
Цитата: maks от Декабря 07, 2008, 16:09
Есть несколько участков кода где может создаваться и отображаться один и тот же диалог. Как проверить что диалог уже не создан и он не отображается.
решение - первоночально указателю присваивать 0. и потом проверять. и при удалении диалога указатель тоже обнулять. а проверить видимость - isVisible()
«
Последнее редактирование: Декабря 07, 2008, 17:00 от Hort
»
Записан
spirit
Гость
Re: Определение того что диалог уже был создан.
«
Ответ #2 :
Декабря 07, 2008, 17:57 »
заюзать
QPointer
Записан
maks
Гость
Re: Определение того что диалог уже был создан.
«
Ответ #3 :
Декабря 07, 2008, 18:37 »
Использовать указатель не подходит так как диалог у меня не модальный.
Записан
spirit
Гость
Re: Определение того что диалог уже был создан.
«
Ответ #4 :
Декабря 07, 2008, 18:38 »
Цитата: maks от Декабря 07, 2008, 18:37
Использовать указатель не подходит так как диалог у меня не модальный.
не понял. в смысле не в куче создается, а в стеке?
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Определение того что диалог уже был создан.
«
Ответ #5 :
Декабря 07, 2008, 18:41 »
Цитата: maks от Декабря 07, 2008, 18:37
Использовать указатель не подходит так как диалог у меня не модальный.
А причем тут модальность?
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
BaltikS
Гость
Re: Определение того что диалог уже был создан.
«
Ответ #6 :
Декабря 07, 2008, 20:59 »
Можно пойти двумя путями.
1) Создать в конструктуре сразу же диалог и проверять его на isVisible(). Если FALSE - то делать show();
2) В конструторе создаваемого окна передать флаг Qt::WDestructiveClose. Тогда при его закрытии оно автоматом уничтожиться и при последующих вызовах его нужно будет всегда создавать!
Записан
maks
Гость
Re: Определение того что диалог уже был создан.
«
Ответ #7 :
Декабря 07, 2008, 21:36 »
Да диалог создавался не через new.
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Определение того что диалог уже был создан.
«
Ответ #8 :
Декабря 07, 2008, 22:14 »
А чем неподходит предложенный выше вариант QPointer + isVisible() ?
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
maks
Гость
Re: Определение того что диалог уже был создан.
«
Ответ #9 :
Декабря 07, 2008, 23:32 »
QPointer в самом деле помог. Просто сразу в него не въехал.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...