IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Problème avec la fonction connect()

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 18
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    In constructor 'FenPrincipale::FenPrincipale(QWidget*)':
     
    C:\Users\XELTINFO\ProjetVision\fenprincipale.cpp:17: erreur : expected primary-expression before ',' token

  2. #2
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Par défaut
    Bonjour,

    Dans cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QObject::connect(ui->bMoyMed, SIGNAL(clicked()), MoyenEtMedian, SLOT(exec()));
    Le problème est que vous utilisez un nom de classe (MoyenEtMedian) au lieu d'une instance de cette classe.

    Bonne continuation,
    Amnell.
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

Discussions similaires

  1. Réponses: 7
    Dernier message: 26/02/2008, 14h08
  2. Problème avec la fonction findfirst ()
    Par Angelico dans le forum Windows
    Réponses: 3
    Dernier message: 05/08/2004, 20h40
  3. [Requete SQL en VBA] Problème avec la fonction FLOOR
    Par zubral dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/07/2004, 13h24
  4. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  5. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo