не вызывается слот при сигнале с деструктора |
Здравствуйте, гость ( Вход | Регистрация )
не вызывается слот при сигнале с деструктора |
MishaUA |
25.11.2013, 17:02
Сообщение
#1
|
Участник Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: 0 |
Допустим, есть такой код:
Проблема в том, что когда генерирую сигнал destSig по событию таймера или кнопки, то слот dest вызывается, но код должен быть устроен, так, чтобы при разрушении mw разрушался t и при этом вызывался слот dest, чего не происходит. У меня есть предположения, что не вызывается из-за того, что mw уже разрушен, но наверно, ошибаюсь, потому что раньше так делал и оно работало. Что можно сделать в данной ситуации? |
|
|
Majestio |
25.11.2013, 17:53
Сообщение
#2
|
Студент Группа: Участник Сообщений: 67 Регистрация: 13.2.2013 Пользователь №: 3710 Спасибо сказали: 1 раз(а) Репутация: 1 |
Допустим, есть такой код:
Проблема в том, что когда генерирую сигнал destSig по событию таймера или кнопки, то слот dest вызывается, но код должен быть устроен, так, чтобы при разрушении mw разрушался t и при этом вызывался слот dest, чего не происходит. У меня есть предположения, что не вызывается из-за того, что mw уже разрушен, но наверно, ошибаюсь, потому что раньше так делал и оно работало. Что можно сделать в данной ситуации? А если попробовать вот так?
|
|
|
MishaUA |
25.11.2013, 18:32
Сообщение
#3
|
Участник Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: 0 |
сорри, я немного спутал, у меня так и есть:
Но всеравно слот не вызывается, хотя через отладку видно, что в деструктор ~ttt() заходит
|
|
|
Sokoloff |
25.11.2013, 20:47
Сообщение
#4
|
Участник Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: 11 |
Телепатически предсказываю, что mw создается в main, в котором что-то вроде
Получается, что mw разрушается при выходе из main. А в это время цикл опрапотки сообщений (application.exec) уже остановился. Или удаляй t в событии закрытия mw. http://qt-project.org/doc/qt-4.8/qwidget.html#closeEvent Или попробуй создавать окно через new и поставить ему аттрибут Qt::WA_DeleteOnClose mw http://qt-project.org/doc/qt-4.8/qt.html#W...tAttribute-enum . |
|
|
Алексей1153 |
29.11.2013, 13:51
Сообщение
#5
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
|
|
|
Анна |
2.12.2013, 11:59
Сообщение
#6
|
Активный участник Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: 4 |
Ставлю на версию Sokoloff!
Такое уже несколько раз обсуждалось. Алексей1153, скорей всего, текст писался по памяти, а не копипастом. Вряд ли кто-то в здравом уме станет называть свой класс ttt. Сообщение отредактировал Анна - 2.12.2013, 12:01 |
|
|
Текстовая версия | Сейчас: 29.11.2024, 11:22 |