世界上难以琢磨的不只是女生的心,还有代码的前后不一!
以前在笔记本上适用qt多线程时,可以直接通过新建.cpp和.h文件,利用信号与槽连接主线程和子线程。但现在我用台式使用同样的软件环境就会Q_OBJECT报错。
如图:
从而导致无法在子线程定义信号和槽函数。(错误原因不明)
解决方案:
- 删除之前新建的子线程.cpp和.h文件;
- 右键“项目名” -> 点击“类向导” -> “添加类” -> “完成”。
在上图输入类名(自取),基类为:QObject
#pragma once
#include "qobject.h"
#include<opencv2/opencv.hpp>
#include<QImage>
using namespace cv;
class myThreads :
public QObject
{
Q_OBJECT
public:
// explicit myThreads(QObject *parent = Q_NULLPTR);
public slots :
void num_deal();
signals:
void sendSignal(QImage);
};
这样就可以用了