Russian Qt Forum
Ноябрь 25, 2024, 08:33
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
проблемы с удалением немодальных окон
Страниц:
1
[
2
]
3
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: проблемы с удалением немодальных окон (Прочитано 19813 раз)
fanat9
Гость
Re: проблемы с удалением немодальных окон
«
Ответ #15 :
Ноябрь 28, 2007, 22:01 »
И за исключением когда закрывается последнее окно и возможно ещё в нескольких ситуациях. Я собственно и имел это ввиду - просто не понравилась фраза: "закрытие окна не означает его удаление" - иногда означает.
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: проблемы с удалением немодальных окон
«
Ответ #16 :
Ноябрь 28, 2007, 22:22 »
Цитата: fanat9 от Ноябрь 28, 2007, 22:01
И за исключением когда закрывается последнее окно...
Снова заблуждение! Для простоты возмем одно единственное окно. Если окно создано динамически, и аттрибут Qt::WA_DeleteOnClose отсутствует то после его закрытия программа завершается, но сам объект не удаляеться!
Полное освобождение ресурсов происходит когда окно создано в стеке или удалено явно после завершения приложения.
Цитата: fanat9 от Ноябрь 28, 2007, 22:01
...и возможно ещё в нескольких ситуациях
В каких ситуациях? Поделитесь информацией с остальными, не жадничайте
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
fanat9
Гость
Re: проблемы с удалением немодальных окон
«
Ответ #17 :
Ноябрь 28, 2007, 22:35 »
Цитировать
Снова заблуждение! Для простоты возмем одно единственное окно. Если окно создано динамически, и аттрибут Qt::WA_DeleteOnClose отсутствует то после его закрытия программа завершается, но сам объект не удаляеться!
Полное освобождение ресурсов происходит когда окно создано в стеке или удалено явно после завершения приложения.
А если нет ? И пример такой можно чтобы мне разобраться до конца ?
Цитировать
В каких ситуациях? Поделитесь информацией с остальными, не жадничайте
А например когда closeEvent() переопределен, вот
«
Последнее редактирование: Ноябрь 28, 2007, 22:37 от fanat9
»
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: проблемы с удалением немодальных окон
«
Ответ #18 :
Ноябрь 28, 2007, 22:48 »
Цитата: fanat9 от Ноябрь 28, 2007, 22:35
А если нет ? И пример такой можно чтобы мне разобраться до конца ?
Помоему вы сами можете написать этот пример, или нет?
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Dodge
Гость
Re: проблемы с удалением немодальных окон
«
Ответ #19 :
Ноябрь 28, 2007, 22:58 »
Цитата: pastor от Ноябрь 28, 2007, 22:48
Помоему вы сами можете написать этот пример, или нет?
Просто человек не знает о чем говорит.
На самом деле есть некоторые проблемы с автоматическим удалением окон(если угодно объектов QWidget и их наследников), если не использовать Qt::WA_DeleteOnClose.
Я в свое время прибывал в некотором недоумении, когда например deleteLater() в переопределенном методе closeEvent виджета, приводило к падению программы. Версию qt точно не скажу, но возможно даже в 4.3.0.
Есть некоторые моменты при работе с виждетами, которые я не понимаю или не знаю. Обычно в таких ситуациях я не разбираюсь в чем проблема, а нахожу альтернативный способ ее решить, ибо времени жалко.
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: проблемы с удалением немодальных окон
«
Ответ #20 :
Ноябрь 28, 2007, 23:02 »
Цитата: Dodge от Ноябрь 28, 2007, 22:58
Просто человек не знает о чем говорит.
2 Dodge: А кому адресован этот пост, мне или fanat9?
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Dodge
Гость
Re: проблемы с удалением немодальных окон
«
Ответ #21 :
Ноябрь 28, 2007, 23:04 »
Цитата: pastor от Ноябрь 28, 2007, 23:02
2 Dodge: А кому адресован этот пост, мне или fanat9?
fanat9 естесно...
Записан
Lion
Гость
Re: проблемы с удалением немодальных окон
«
Ответ #22 :
Ноябрь 29, 2007, 07:50 »
Цитата: pastor от Ноябрь 28, 2007, 17:52
Цитата: Lion от Ноябрь 28, 2007, 16:08
Если QMainWindow отображается в виде отдельного окна, то у него parent() == NULL, иначе это окно обображалось бы внутри BaseForm.
Серьёзно?
Как правило да, но выяснилось что это не отностится к QDialog и QMainWiondow.
Записан
ритт
Гость
Re: проблемы с удалением немодальных окон
«
Ответ #23 :
Ноябрь 29, 2007, 09:00 »
хм...интересно какое это правило? когда мэйнвиндов создаётся из главной функции и
ни одного
виджета ещё не существует, чтобы поставить его родителем окну?
охренеть, правило...скорее уж, нужда.
Записан
antipart
Гость
Re: проблемы с удалением немодальных окон
«
Ответ #24 :
Ноябрь 29, 2007, 20:20 »
Цитировать
Снова заблуждение! Для простоты возмем одно единственное окно. Если окно создано динамически, и аттрибут Qt::WA_DeleteOnClose отсутствует то после его закрытия программа завершается, но сам объект не удаляеться!
так этот атрибут (Qt::WA_DeleteOnClose) нужно для каждого динамического окна указывать?
пробовал указывать только для главного окна и мне не очень понравился результат...-все окна закрываются (вроде как положено) , но приложение висит в задачах...
в моем случае (окон не много) получилось нормально выйти только при помощи delete потомка при закрытии предка...
Записан
Вячеслав
Гость
Re: проблемы с удалением немодальных окон
«
Ответ #25 :
Ноябрь 29, 2007, 20:40 »
Цитата: antipart от Ноябрь 29, 2007, 20:20
Цитировать
Снова заблуждение! Для простоты возмем одно единственное окно. Если окно создано динамически, и аттрибут Qt::WA_DeleteOnClose отсутствует то после его закрытия программа завершается, но сам объект не удаляеться!
так этот атрибут (Qt::WA_DeleteOnClose) нужно для каждого динамического окна указывать?
пробовал указывать только для главного окна и мне не очень понравился результат...-все окна закрываются (вроде как положено) , но приложение висит в задачах...
в моем случае (окон не много) получилось нормально выйти только при помощи delete потомка при закрытии предка...
Чего-то меня стали сомнения терзать - ты случаем quitOnLastWindowClosed у QApplication'a не трогал ? Сигнал lastWindowClosed () ловиться ? Всетаки IMHO ты чего-то с родителями намудрил - у меня в SDI варианте проги создаеться туева хуча окон - а опосля нормально убиваются с завершением приложения .....
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: проблемы с удалением немодальных окон
«
Ответ #26 :
Ноябрь 29, 2007, 20:45 »
Цитата: antipart от Ноябрь 29, 2007, 20:20
так этот атрибут (Qt::WA_DeleteOnClose) нужно для каждого динамического окна указывать?
пробовал указывать только для главного окна и мне не очень понравился результат...-все окна закрываются (вроде как положено) , но приложение висит в задачах...
в моем случае (окон не много) получилось нормально выйти только при помощи delete потомка при закрытии предка...
Нет, не для каждого. Я говрил про главное окно приложения. Когда оно создаеться динамически (при этом парента нет) окно не удаляеться. Qt::WA_DeleteOnClose решает эту проблему.
В вашем случае создаеться второе главное окно. Его нужно удалять или явно или задавать аттрибут Qt::WA_DeleteOnClose и вызывать close()
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: проблемы с удалением немодальных окон
«
Ответ #27 :
Ноябрь 29, 2007, 20:49 »
Цитата: Вячеслав от Ноябрь 29, 2007, 20:40
Чего-то меня стали сомнения терзать - ты случаем quitOnLastWindowClosed у QApplication'a не трогал ? Сигнал lastWindowClosed () ловиться ? Всетаки IMHO ты чего-то с родителями намудрил - у меня в SDI варианте проги создаеться туева хуча окон - а опосля нормально убиваются с завершением приложения .....
Все верное. Для каждого окна задан аттрибут Qt::WA_DeleteOnClose и при выходе из приложение вызываетсья closeAllWindows() etc. При этом происходит удаление всех окон и прога заверщает свою работу.
У antipart другой случай. Для вторго главного окна этот атрибут не задан, и при close не происходит его удаления. Окно просто хайдиться. В результате прога не завершае тсвою работу
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Вячеслав
Гость
Re: проблемы с удалением немодальных окон
«
Ответ #28 :
Ноябрь 29, 2007, 20:52 »
Гы
А позвать dumpObjectTree () от qApp'a не судьба ? и посмотреть хто остался жив ?
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: проблемы с удалением немодальных окон
«
Ответ #29 :
Ноябрь 29, 2007, 21:38 »
Цитата: Вячеслав от Ноябрь 29, 2007, 20:52
Гы
А позвать dumpObjectTree () от qApp'a не судьба ? и посмотреть хто остался жив ?
)))
Ну помоему и без dumpObjectTree() ясно кто весит
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Страниц:
1
[
2
]
3
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...