繁体   English   中英

C++ 线程::进程() 函数

[英]C++ Thread::process() function

我正在尝试运行一个单独的线程来进行一些下载,而我的 GUI 在 C++ 中使用 Qt5 运行。 到目前为止,我已经解决了所有问题,除非我尝试编译代码时出现此错误:

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(); 

是我在调用它时做错了什么还是我在编写它时做错了什么?

好吧,看起来WorkerThread::process()槽没有在任何地方有效使用,而且看起来process方法之前在其他地方定义过。 注释掉该行并编辑代码以适应这项工作。 谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM