Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de SLOT

    12 juin 2008 à 15:31:19

    Salut tout le monde, j'ai écrit un petit programme qui doit me permettre d'envoyer et recevoir des chaines de caratères sur un port série. Seulement voila je suis bloqué, j'ai une erreur de compilation à cause d'un slot. Je ne comprend pas d'où cela peu venir. :colere2:

    voici l'erreur en question:main.cpp:62: error: no matching function for call to 'QObject::connect(QLineEdit*&, const char [22], 2], tRs232*&, const char[19])'



    voici mon code:


    // le MAIN
    #include <QApplication>
    #include "trs232.h"
    #include <QPushButton>
    #include <QLabel>
    #include <QHBoxLayout>
    #include <QLineEdit>
    #include <QLabel>
     #include <QTextEdit>
    
    
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
    
        QWidget fenetre;
    
        tRs232 *Test;
        Test = new tRs232(USB0, BPS9600, BIT7, PAS_DE_PARITE, STOP1);
    
        //Test->Envoyer("coucou");
    
        //interface graphique
        QLabel *envoyer = new QLabel("Envoyer");
        QPushButton *quitter = new QPushButton("Quitter");
        QLabel *rs232 = new QLabel("Reception:");
        QLineEdit *envoie = new QLineEdit;
        QTextEdit *carrecu =new QTextEdit;
    
    
        QGridLayout *layout = new QGridLayout;
    
        layout->addWidget(envoyer,0,0);
        layout->addWidget(envoie,0,1);
        layout->addWidget(rs232,1,0);
        layout->addWidget(carrecu,1,1);
        layout->addWidget(quitter,2,1);
    
        //Evenement bouton & reception:
    
        QObject::connect(quitter, SIGNAL(clicked()), qApp, SLOT(quit()));
        QObject::connect(envoie, SIGNAL(returnPressed ()),Test, SLOT(rs232envoie()));
        QObject::connect(envoie, SIGNAL(returnPressed ()),envoie, SLOT(clear()));
    
     
        fenetre.setLayout(layout);
    
        fenetre.show();
        return app.exec();
    
    }
    
    //LE .H de MA CLASSE tRs232
    #include <iostream>
    #include <QApplication>
    #include "trs232.h"
    #include <QPushButton>
    #include <QLabel>
    #include <QHBoxLayout>
    #include <QLineEdit>
    #include <QLabel>
    #include <QTextEdit>
    using namespace std;
    
    
    
    class tRs232{
    
    Q_OBJECT
    
    private:
    	termios Config;
    	char MessageConfigurer[30];
    	
    	int Configurer(char* pPort,int Vitesse,int NbBits,int Parite,int NbStop);
    
    protected:
    	int fd;	//Descripteur de fichier
    
    public slots:
    
    	/*envoie la chaine de cartére éditer*/
    	void rs232envoie();
    
    public:
    	tRs232(void);
    	tRs232(char* pPort,int Vitesse,int NbBits,int Parite,int NbStop);	
    
    	~tRs232();
    
    	void AfficherMessageConfigurer();
    	
    	// Envoyer une chaine de caract?e
    	int Envoyer(char* pChaine);
    	
    	// Recevoir Nb caract?es
    	int Recevoir(int Nb,char* pChaine);
    	
    	// Recevoir une cha?e se terminant par un caract?donne
    
    	// avec ou sans time out
    	int Recevoir(char Fin, char* pChaine, int Mode);
    	int Recevoir(char Fin, char* pChaine,int Mode, int Attente);
    	
    	// Recevoir une s?ie de caract?es avec time out
    	int RecevoirCaractere(char* Caractere, int Attente);
    	
    	// Recevoir un fichier
    	int RecevoirFichier(char *NomFichier, int AttenteDebut);
    
    };
    

    Si vous avez une idée, merci. ^^
    • Partager sur Facebook
    • Partager sur Twitter
      12 juin 2008 à 15:37:19

      Tes deux objets connectés doivent hériter de QObject hors "Test" est de type "tRs232" et ta classe tRs232 n'hérite pas de QObject.

      bool connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * method, Qt::ConnectionType type = Qt::AutoCompatConnection )
      • Partager sur Facebook
      • Partager sur Twitter
        12 juin 2008 à 16:07:44

        je pense que ça venez de la en partie car j'ai encore un problème:

        trs232.cpp:(.text+0x7b1): undefined reference to `vtable for tRs232'
        trs232.o: In function `tRs232::tRs232()':
        trs232.cpp:(.text+0x831): undefined reference to `vtable for tRs232'
        trs232.o:trs232.cpp:(.text+0x8b4): more undefined references to `vtable for tRs232' follow

        Je me suis trompé en oubliant de décocher "résolu". :(
        • Partager sur Facebook
        • Partager sur Twitter
          12 juin 2008 à 16:14:25

          Salut,
          Tu as bien refais -qmake puis -make?
          • Partager sur Facebook
          • Partager sur Twitter
            12 juin 2008 à 16:23:44

            j'utilise KDevelop sa me le fait automatiquement, mon interface graphique compiler bien et s'affiche correctement.
            Ils y a que mes connect qui marche pas. :euh:
            • Partager sur Facebook
            • Partager sur Twitter
              12 juin 2008 à 16:30:59

              jsuis pas sur de comprendre... ce que tu nous a mis c'est un message du compilo... donc comment sa peut s'exécuter????
              • Partager sur Facebook
              • Partager sur Twitter
                12 juin 2008 à 16:44:07

                oui c'est pas mon code c'est une partie du résultat de la compilation je l'ai poster car j'ai pensé que ça pourrai aider a résoudre mon problème.
                • Partager sur Facebook
                • Partager sur Twitter

                Problème de SLOT

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown