Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Signal - Slot между потоками не работает



  • Все добрый день. Пытаюсь отправить сигнал из одного потока и принять через слот в другом. Делаю так:

    MakePost *worker;
      QThread *workerThread;
      worker = new MakePost(Data, SubUrl, requestString);
      workerThread = new QThread(this);
      connect(workerThread, SIGNAL(started()), worker, SLOT(CreatePost()));
      connect(workerThread, SIGNAL(finished()), worker, SLOT(deleteLater()));
    
    connect(worker, SIGNAL(SendTest(QString)), this, SLOT(GetTest(QString)));
    
    worker->moveToThread(workerThread);
      worker->manager.moveToThread(workerThread);
      workerThread->start();
    

    получаю ошибку:

    QObject::connect: Cannot connect MakePost::SendTest(QString) to (null)::GetTest(QString)
    

    Подскажите, что делаю не так? Заранее спасибо за помощь!



  • А this здесь это кто?



  • this это некий класс function и метод SendPost

    Вызывается по нажатию кнопки:

    function *FUNC = new function();
    FUNC->SendPost();
    


  • Ну вы этот connect делаете, надо полагать, в конструкторе этого самого класса? Просто в ошибке оно говорит, что ему ни про какой класс не известно, и там вообще null.


Log in to reply