Android Can';安卓系统中的t发射信号
我在我的项目中有这个信号Android Can';安卓系统中的t发射信号,android,qt,Android,Qt,我在我的项目中有这个信号 void sendImage(cv::Mat &imgMat, QImage &imgQImage); 该项目在Mingw和visualstudio上都可以编译,但当我尝试为Android构建时,我得到了“错误:没有匹配的函数用于调用imageReader::sendImage(cv::Mat&,QImage)”错误 我在不同的项目上测试了我的pro文件,尝试清理/运行qmake/clean/rebuild,从信号中删除cv::Mat,但没有任何效果
void sendImage(cv::Mat &imgMat, QImage &imgQImage);
该项目在Mingw和visualstudio上都可以编译,但当我尝试为Android构建时,我得到了“错误:没有匹配的函数用于调用imageReader::sendImage(cv::Mat&,QImage)”错误
我在不同的项目上测试了我的pro文件,尝试清理/运行qmake/clean/rebuild,从信号中删除cv::Mat,但没有任何效果
有什么问题吗
编辑
我在中打开了一个问题,看起来问题与Visual Studio有关。您可以在中找到详细信息
编辑:当我说“问题与visual studio有关”时,我的意思是“visual studio将我引向了错误的方向”,我的emit行首先应该给出编译错误,就像gcc一样。你能发布类定义的完整代码吗?@Tay2510;我已经更新了定义。我认为
imageReader
是应该随代码一起提供的类。@Tay2510;我再次使用imageReader进行了更新。编译器说“错误:调用imageReader::sendImage(cv::Mat&,QImage)没有匹配的函数”,因为您的信号定义是void sendImage(QImage&imgQImage)代码>您无法连接到甚至不存在的信号。不,正如开发人员在错误报告中告诉您的,错误在于您的信号应该有一个QImage参数,而不是QImage&参数。它在VisualStudio中工作,但不应该。它在gcc中不起作用,这就是为什么你在Android上遇到麻烦的原因。
#ifndef READERMANAGERQMLINTERFACE_H
#define READERMANAGERQMLINTERFACE_H
#include <QObject>
#include <QDebug>
#include "readermanager.h"
class ReaderManagerQMLInterface : public QObject
{
Q_OBJECT
public:
explicit ReaderManagerQMLInterface(QObject *parent = 0);
~ReaderManagerQMLInterface();
readerManager rManager;
private:
signals:
void reqIm();
public slots:
void sendImage(QImage &imgQImage);
};
#endif // READERMANAGERQMLINTERFACE_H
#ifndef IMAGEREADER_H
#define IMAGEREADER_H
#include <QObject>
#include <QImage>
#include <QDebug>
#include <QThread>
#include <QDir>
#include <QFile>
#include <opencv/cv.h>
class imageReader : public QObject
{
Q_OBJECT
public:
explicit imageReader(QObject *parent = 0);
~imageReader();
imgHelpers imHelpers;
signals:
void sendImage(QImage &imgQImage);
public slots:
void requestImage();
void setFrame(int frameID);
void loadImage(QString fileName);
}
void imageReader::requestImage()
{
images.at(currentImageID).copyTo(this->currentImage);
processImage(currentImage);
emit sendImage(imHelpers.mat2Image(this->currentImage) );
//emit sendImage(QImage("d:/test.bmp"));
}