Problème avec la fonction connect()
J'essaie de connecter un bouton à une fonction membre d'une autre classe. J'ai créé une petite interface avec Qt Designer et j'utilise l'API OpenCV sous Qt.
Voici le code de la classe en question :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| #include "moyenetmedian.h"
#include<highgui.h>
#include<cv.h>
using namespace std;
MoyenEtMedian::MoyenEtMedian()
{
}
int g_switch_value = 0;
int filterInt = 0;
int lastfilterInt = -1;
void MoyenEtMedian::switch_callback(int position, void* object)
{ MoyenEtMedian* moyetmed = (MoyenEtMedian*) object;
filterInt = position;
}
//la fct à connecter au bouton
void MoyenEtMedian::exec(void)
{
const char* name = "Filtres";
IplImage* img = cvLoadImage( "image.png" );
IplImage* out = cvCreateImage( cvGetSize(img), IPL_DEPTH_8U, 3 );
cvNamedWindow( name, 1 );
cvShowImage(name, out);
// Create trackbar
cvCreateTrackbar2( "Filtre", name, &g_switch_value, 1, &MoyenEtMedian::switch_callback, this );
while( 1 ) {
switch( filterInt ){
case 0:
cvSmooth( img, out, CV_BLUR, 7, 7 );
break;
case 1:
cvSmooth( img, out, CV_MEDIAN, 7, 7 );
break;
}
if(filterInt != lastfilterInt){
cvShowImage(name, out);
lastfilterInt = filterInt;
}
if( cvWaitKey( 15 ) == 27 )
break;
}
cvReleaseImage( &img );
cvReleaseImage( &out );
cvDestroyWindow( name );
} |
Voici le .cpp de l'interface :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include "fenprincipale.h"
#include "ui_fenprincipale.h"
#include<highgui.h>
#include<cv.h>
#include <moyenetmedian.h>
FenPrincipale::FenPrincipale(QWidget *parent) :
QWidget(parent),
ui(new Ui::FenPrincipale)
{
ui->setupUi(this);
QObject::connect(ui->bMoyMed, SIGNAL(clicked()), MoyenEtMedian, SLOT(exec()));
} |
Et voici le message d'erreur que j'ai :
Code:
1 2 3
| In constructor 'FenPrincipale::FenPrincipale(QWidget*)':
C:\Users\XELTINFO\ProjetVision\fenprincipale.cpp:17: erreur : expected primary-expression before ',' token |