Russian Qt Forum
Ноябрь 26, 2024, 02:42
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
deleteLater(),close()
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: deleteLater(),close() (Прочитано 10086 раз)
demaker
Птица говорун
Offline
Сообщений: 962
deleteLater(),close()
«
:
Апрель 22, 2013, 09:59 »
deleteLater(),close() в чем принципиальная разница между этими слотами?
Записан
Bepec
Гость
Re: deleteLater(),close()
«
Ответ #1 :
Апрель 22, 2013, 10:01 »
deleteLater удаляет объект когда он уже не нужен. Но не обязательно сей момент.
close считай убивает виджет
Записан
demaker
Птица говорун
Offline
Сообщений: 962
Re: deleteLater(),close()
«
Ответ #2 :
Апрель 22, 2013, 10:02 »
спасибо
Записан
KrupaKarlo
Гость
Re: deleteLater(),close()
«
Ответ #3 :
Май 06, 2013, 12:50 »
Документация к функции close()
Closes this widget. Returns true if the widget was closed; otherwise returns false.
First it sends the widget a QCloseEvent. The widget is hidden if it accepts the close event. If it ignores the event, nothing happens. The default implementation of QWidget::closeEvent() accepts the close event.
If the widget has the Qt::WA_DeleteOnClose flag, the widget is also deleted. A close events is delivered to the widget no matter if the widget is visible or not.
В вольном переводе close() не убивает виджет если нет флага Qt::WA_DeleteOnClose.
И еще если все окна GUI приложения закрыть - приложение завершается. Так что вас вводят в заблуждение. Проверяйте что вам пишут
Записан
Странник
Гость
Re: deleteLater(),close()
«
Ответ #4 :
Май 06, 2013, 15:56 »
строго говоря, deleteLater() создает задание на удаление объекта, которое выполняется при следующем заходе в цикл событий. если этого не учитывать, может быть неприятно = )
Записан
Bepec
Гость
Re: deleteLater(),close()
«
Ответ #5 :
Май 06, 2013, 16:19 »
А если у виджета переопределён closeEvent c отказом виджет не закроется
PS а принципиальная разница во втором сообщении
Записан
KrupaKarlo
Гость
Re: deleteLater(),close()
«
Ответ #6 :
Май 06, 2013, 21:25 »
Полный атас. стандартное поведение close() просто закрыть виджет. И да при этом вызывается closeEvent который можно обработать и изменить поведение. но блин причем тут
Цитировать
close считай убивает виджет
Записан
Bepec
Гость
Re: deleteLater(),close()
«
Ответ #7 :
Май 06, 2013, 21:30 »
Кхм. Почитай про значение слова считай
http://expo.art-royal.net/?name=dal&sw=%D1%81%D1%87%D0%B8%D1%82%D0%B0%D0%B9
PS граммар наци на форуме?
Записан
KrupaKarlo
Гость
Re: deleteLater(),close()
«
Ответ #8 :
Май 07, 2013, 16:26 »
народ подскажите плиз, а есть ли способ неких пользователей добавить в бан лист и не видеть их сообщений
Записан
Bepec
Гость
Re: deleteLater(),close()
«
Ответ #9 :
Май 07, 2013, 17:21 »
Нет, на форуме нет такого функционала. Администрация придерживается нейтралитета
Да, есть такой функционал, реализованный в скрипте
Я его сам использовал, пока некая личность не покинула форум
PS возможность есть, повод для саморазвития есть, вперёд
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: deleteLater(),close()
«
Ответ #10 :
Май 07, 2013, 17:44 »
Цитата: demaker от Апрель 22, 2013, 09:59
deleteLater(),close() в чем принципиальная разница между этими слотами?
Избегайте deleteLater(), он опасен, чреват неприятными последствиями
Записан
Bepec
Гость
Re: deleteLater(),close()
«
Ответ #11 :
Май 07, 2013, 18:37 »
Кхм. Прощу вас, Igors, поведайте нам об опасности deleteLater.
Записан
Akon
Гость
Re: deleteLater(),close()
«
Ответ #12 :
Май 08, 2013, 10:39 »
demaker:
Когда-нибудь столкнетесь с ситуацией, когда deleteLater() будет нужен, просто пучувствуете это. Ну, или поищите deleteLater() в сорцах Qt, чтобы посмотреть зачем он нужен.
Верес:
имхо, ваши посты малоинформативны и, зачастую, технически некорректными. Т.е. слов много, а по делу мало.
Записан
Bepec
Гость
Re: deleteLater(),close()
«
Ответ #13 :
Май 08, 2013, 12:11 »
Спасибо Akon, учту ваше замечание. Может вы поможете мне исправиться? Пожалуйста укажите мне мои ошибки. Желательно с цитированием и указанием "ошибок".
Но, на мой взгляд, они информативны и являют собой моё мнение. То, что некоторые не замечают слов "может быть", "я так думаю", "я так считаю", "это моё мнение", "считай", "наверно" - это проблема внимательности.
PS deleteLater() рекомендуется использовать в классе QNetworkReply.
«
Последнее редактирование: Май 08, 2013, 12:13 от Bepec
»
Записан
Странник
Гость
Re: deleteLater(),close()
«
Ответ #14 :
Май 08, 2013, 13:14 »
избегать можно всего, в том числе и программирования (как особо чреватого неприятными последствиями). полезнее знать и учитывать механизм работы, используя инструменты при необходимости и по назначению.
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...