Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't emit signal in Android

Tags:

android

qt

I have this signal in my project;

void sendImage(cv::Mat &imgMat, QImage &imgQImage);

Project compiles on both Mingw and Visual Studio but when i try to build for Android, i get "error: no matching function for call to imageReader::sendImage(cv::Mat&, QImage)" error.

I tested my pro file on different project, try clean/run qmake/clean/rebuild, remove cv::Mat from signal but nothing worked.

What can be the problem?

Edit;

#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

imageReader;

#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);
    }

I'm emitting signal like this;(in case my mat2Image function causes the problem, i tried both)

void imageReader::requestImage()
{
    images.at(currentImageID).copyTo(this->currentImage);
    processImage(currentImage);
    emit sendImage(imHelpers.mat2Image(this->currentImage) );
  //emit sendImage(QImage("d:/test.bmp"));
}
like image 333
bmeric Avatar asked Apr 20 '15 07:04

bmeric


Video Answer


1 Answers

I opened an issue in bugreports.qt.io and looks like problem is related to Visual Studio. You can find details in here.

Edit: When i say "problem is related visual studio" i mean "Visual Studio lead me in the wrong direction", my emit line should give compile error in the first place like gcc.

like image 126
bmeric Avatar answered Sep 17 '22 15:09

bmeric