crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

MishaUA
  опции профиля:
сообщение 25.11.2013, 17:02
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 185
Регистрация: 28.4.2013
Пользователь №: 3810

Спасибо сказали: 13 раз(а)




Репутация:   0  


Допустим, есть такой код:
class ttt public QWidget {
    Q_OBJECT
public:
    ~ttt() {emit destSig("iiii");}
signals:
    destSig(QString);
};

class mw public QMainWindow {
    Q_OBJECT
public:
    mw() {
        ttt*    t = new ttt();
        connect(t, SIGNAL(destSig(QString)), this, SLOT(dest(QString)));
    }
    
public slots:
    dest(QString) {
        // не вызывается при разрушении класса t
    };
}

Проблема в том, что когда генерирую сигнал destSig по событию таймера или кнопки, то слот dest вызывается, но код должен быть устроен, так, чтобы при разрушении mw разрушался t и при этом вызывался слот dest, чего не происходит.
У меня есть предположения, что не вызывается из-за того, что mw уже разрушен, но наверно, ошибаюсь, потому что раньше так делал и оно работало.
Что можно сделать в данной ситуации?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Анна
  опции профиля:
сообщение 2.12.2013, 11:59
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 276
Регистрация: 22.5.2008
Из: Зеленоград
Пользователь №: 181

Спасибо сказали: 30 раз(а)




Репутация:   4  


Ставлю на версию Sokoloff!
Такое уже несколько раз обсуждалось.

Алексей1153, скорей всего, текст писался по памяти, а не копипастом. Вряд ли кто-то в здравом уме станет называть свой класс ttt.

Сообщение отредактировал Анна - 2.12.2013, 12:01
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 24.6.2025, 13:22