Russian Qt Forum
Ноябрь 26, 2024, 02:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: deleteLater(),close()  (Прочитано 10086 раз)
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« : Апрель 22, 2013, 09:59 »

deleteLater(),close() в чем принципиальная разница между этими слотами?
Записан
Bepec
Гость
« Ответ #1 : Апрель 22, 2013, 10:01 »

deleteLater удаляет объект когда он уже не нужен. Но не обязательно сей момент.
close  считай убивает виджет Улыбающийся
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #2 : Апрель 22, 2013, 10:02 »

спасибо  Улыбающийся
Записан
KrupaKarlo
Гость
« Ответ #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 приложения закрыть  - приложение завершается. Так что вас вводят в заблуждение. Проверяйте что вам пишут  Улыбающийся
Записан
Странник
Гость
« Ответ #4 : Май 06, 2013, 15:56 »

строго говоря, deleteLater() создает задание на удаление объекта, которое выполняется при следующем заходе в цикл событий. если этого не учитывать, может быть неприятно = )
Записан
Bepec
Гость
« Ответ #5 : Май 06, 2013, 16:19 »

А если у виджета переопределён closeEvent c отказом виджет не закроется Веселый

PS а принципиальная разница во втором сообщении Подмигивающий
Записан
KrupaKarlo
Гость
« Ответ #6 : Май 06, 2013, 21:25 »


Полный атас. стандартное поведение close() просто закрыть виджет. И да при этом вызывается closeEvent который можно обработать и изменить поведение. но блин причем тут
Цитировать
close  считай убивает виджет

Записан
Bepec
Гость
« Ответ #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
Гость
« Ответ #8 : Май 07, 2013, 16:26 »

народ подскажите плиз, а есть ли способ неких пользователей добавить в  бан лист и не видеть их сообщений
Записан
Bepec
Гость
« Ответ #9 : Май 07, 2013, 17:21 »

Нет, на форуме нет такого функционала. Администрация придерживается нейтралитета Улыбающийся

Да, есть такой функционал, реализованный в скрипте Показает язык Я его сам использовал, пока некая личность не покинула форум Подмигивающий

PS возможность есть, повод для саморазвития есть, вперёд Подмигивающий
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #10 : Май 07, 2013, 17:44 »

deleteLater(),close() в чем принципиальная разница между этими слотами?
Избегайте deleteLater(), он опасен, чреват неприятными последствиями
Записан
Bepec
Гость
« Ответ #11 : Май 07, 2013, 18:37 »

Кхм. Прощу вас, Igors, поведайте нам об опасности deleteLater.
Записан
Akon
Гость
« Ответ #12 : Май 08, 2013, 10:39 »

demaker:
Когда-нибудь столкнетесь с ситуацией, когда deleteLater() будет нужен, просто пучувствуете это. Ну, или поищите deleteLater() в сорцах Qt, чтобы посмотреть зачем он нужен.

Верес:
имхо, ваши посты малоинформативны и, зачастую, технически некорректными. Т.е. слов много, а по делу мало.
Записан
Bepec
Гость
« Ответ #13 : Май 08, 2013, 12:11 »

Спасибо Akon, учту ваше замечание. Может вы поможете мне исправиться? Пожалуйста укажите мне мои ошибки. Желательно с цитированием и указанием "ошибок".

Но, на мой взгляд, они информативны и являют собой моё мнение. То, что некоторые не замечают слов "может быть", "я так думаю", "я так считаю", "это моё мнение", "считай", "наверно" - это проблема внимательности.

PS deleteLater() рекомендуется использовать в классе QNetworkReply.
« Последнее редактирование: Май 08, 2013, 12:13 от Bepec » Записан
Странник
Гость
« Ответ #14 : Май 08, 2013, 13:14 »

избегать можно всего, в том числе и программирования (как особо чреватого неприятными последствиями). полезнее знать и учитывать механизм работы, используя инструменты при необходимости и по назначению.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.084 секунд. Запросов: 22.