Russian Qt Forum
Июнь 16, 2024, 01:56 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: не отслеживает сигнал finished  (Прочитано 3388 раз)
danquimby
Гость
« : Май 30, 2011, 17:30 »

добрый вечер , подскажите почему у меня не удаляется поток
при инициализации

Код:
myThread *tt =new myThread("bla bla");
    tt->start();

Код:
class myThread : public QThread
{
    Q_OBJECT
public:
    myThread(QString _str): str(_str) {}
    void    run()
    {
        connect(this,SIGNAL(finished()),this,SLOT(reliase()));
        sleep(3);
        qDebug() << "complete ";
        qDebug() << str;
        exec();
    }
    QString str;
public slots:
    void    reliase()
{
        qDebug() << "reliase ";
    delete this;
}
};

Вроде должен выходить в reliase ...
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #1 : Май 30, 2011, 17:35 »

Вероятнее всего потому, что он из exec не выходит.
reliase == release ?
Записан
danquimby
Гость
« Ответ #2 : Май 30, 2011, 17:42 »

Вероятнее всего потому, что он из exec не выходит.
reliase == release ?
а почему ? там же просто sleep стоит О_о
Записан
danquimby
Гость
« Ответ #3 : Май 30, 2011, 17:45 »

сделал по другому убрал конект из run и установил его при инициализации

Код:
    myThread *tt =new myThread(tmp->text_chat);
    connect(tt,SIGNAL(finished()),tt,SLOT(reliase()));
    tt->start();
но как говориться "те же яйца только в профиль"
Записан
danquimby
Гость
« Ответ #4 : Май 30, 2011, 18:10 »

самое интересное , что я просто из первоначального кода убрал
из run()
exec();

и все заработало как и мне нужно , фантастика да и только о_О
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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