2015-04-20 12 views
9

Ho questo segnale nel mio progetto;Impossibile emettere segnale in Android

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

progetto compila sia Mingw e Visual Studio, ma quando provo a costruire per Android, ottengo "Errore: nessuna funzione di corrispondenza per chiamata a ImageReader :: sendImage (cv :: Mat &, QImage)" Errore .

Ho testato il mio file pro su un progetto diverso, provare clean/run qmake/clean/rebuild, rimuovere cv :: Mat dal segnale ma niente ha funzionato.

Quale può essere il problema?

Modifica;

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

sto emettendo segnali come questo; (nel caso in cui la mia funzione mat2Image causa il problema, ho provato entrambi)

void imageReader::requestImage() 
{ 
    images.at(currentImageID).copyTo(this->currentImage); 
    processImage(currentImage); 
    emit sendImage(imHelpers.mat2Image(this->currentImage)); 
    //emit sendImage(QImage("d:/test.bmp")); 
} 
+0

Potresti pubblicare il codice completo della definizione della classe? – Tay2510

+0

@ Tay2510; Ho aggiornato con la definizione. – bmeric

+0

Penso che 'imageReader' è la classe che dovresti fornire con il codice. – Tay2510

risposta

4

ho aperto un problema in bugreports.qt.io e si presenta come problema è legato a Visual Studio. È possibile trovare i dettagli in here.

Edit: Quando dico "studio visivo relativo al problema" intendo "Visual Studio mi guida nella direzione sbagliata", la mia riga di emittenza dovrebbe dare errore di compilazione in primo luogo come gcc.

+3

No, come gli sviluppatori ti hanno detto nella segnalazione di bug, il bug è che il tuo segnale dovrebbe avere un parametro QImage, non a QImmagine e parametro. Funziona in Visual Studio, ma non dovrebbe. Non funziona in gcc, motivo per cui hai problemi su Android. –

Problemi correlati