Функция C ++ Thread :: process () - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь запустить отдельный поток для загрузки, в то время как мой GUI работает с Qt5 в c ++. До сих пор у меня все получалось, за исключением случаев, когда я пытаюсь скомпилировать код, эта ошибка:

moc_threader.cpp:82: error: undefined reference to `WorkerThread::process()'

Я получаю это, даже если WorkerThread::process() не определен и не вызывается в моих сценариях. Мой класс потока выглядит следующим образом:

class WorkerThread : public QThread {
    Q_OBJECT
    void run() override{
            try {
            //download
            } catch (const std::exception& e) {
            //present error
            }
             emit progressChanged("Info");
        }
    public slots:
        void process();
    // Define signal:
signals:
    void progressChanged(QString info);
};

И я называю это так:

WorkerThread *workerThread = new WorkerThread;
connect(workerThread, SIGNAL(progressChanged(QString)),SLOT(onProgressChanged(QString)));
connect(workerThread, SIGNAL(finished()),workerThread, SLOT(deleteLater()));
workerThread->start(); 

Я что-то не так делаю в вызове или я что-то не так сделал в письменной форме или как?

1 Ответ

0 голосов
/ 09 марта 2020

Ну, похоже, слот WorkerThread::process() нигде не использовался эффективно, и похоже, что метод process был ранее определен где-то еще. Закомментировав строку и отредактировав код, он выполнил свою работу Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...