【发布时间】:2015-04-20 07:48:07
【问题描述】:
我的项目中有这个信号;
void sendImage(cv::Mat &imgMat, QImage &imgQImage);
项目可以在 Mingw 和 Visual Studio 上编译,但是当我尝试为 Android 构建时,我收到“错误:没有匹配函数调用 imageReader::sendImage(cv::Mat&, QImage)”错误。
我在不同的项目上测试了我的 pro 文件,尝试清理/运行 qmake/clean/rebuild,从信号中删除 cv::Mat 但没有任何效果。
可能是什么问题?
编辑;
#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);
}
我正在发出这样的信号;(如果我的 mat2Image 函数导致问题,我都尝试了)
void imageReader::requestImage()
{
images.at(currentImageID).copyTo(this->currentImage);
processImage(currentImage);
emit sendImage(imHelpers.mat2Image(this->currentImage) );
//emit sendImage(QImage("d:/test.bmp"));
}
【问题讨论】:
-
能否贴出完整的类定义代码?
-
@Tay2510;我已经更新了定义。
-
我认为
imageReader是您应该提供代码的类。 -
@Tay2510;我又用 imageReader 更新了。
-
编译器说 "error: no matching function for call to imageReader::sendImage(cv::Mat&, QImage)" 因为你的信号定义是
void sendImage(QImage &imgQImage);你不能连接到一个甚至不存在的信号。