Programmation C++, problème avec QT (slots)
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Programmation C++, problème avec QT (slots)



  1. #1
    Fred des montagnes

    Programmation C++, problème avec QT (slots)


    ------

    Bonjours à tous.

    Voilà, j'ai un petit problème, je débute avec la librairie Qt en C++ et je voulais essayer de faire une petit programme dont l'interface est constituée de deux champs de textes (QLineEdit) et d'un bouton. Je veux copier le texte d'un des champs dans l'autre quand on appuie sur le bouton.

    Voici la définition des prototypes de ma class fenêtre:

    Code:
    #ifndef MAFENETRE_H
    #define MAFENETRE_H
    
    #include <QApplication>
    #include <QtGui>
    #include <QPushButton>
    
    
    class MaFenetre : public QWidget
    {
        Q_OBJECT
    
    public:
        MaFenetre();
    public slots:
        void BoutonAction();
    
    
    private:
        QPushButton *bouton;
        QLineEdit *Champ1, *Champ2;
    
    };
    
    #endif // MAFENETRE_H
    Le code de la fenêtre elle même:
    Code:
    #include "MaFenetre.h"
    
    
    MaFenetre::MaFenetre()
    {
        this->setGeometry(1080,100,160,235);
    
        QLineEdit *Champ1=new QLineEdit("Champ 1",this);
        Champ1->move(10,30);
        QLineEdit *Champ2=new QLineEdit("Champ 2",this);
        Champ2->move(10,60);
    
        QPushButton *bouton=new QPushButton("copie",this);
        bouton->move(40,90);
    
        QObject::connect(bouton, SIGNAL(clicked()), this, SLOT(BoutonAction()));
    
    };
    
    void MaFenetre::BoutonAction(){
    
       Champ2->setText(Champ1->text());
        
    }
    Et la création de l'objet dans le main:

    Code:
    #include <QApplication>
    #include <QtGui>
    #include "MaFenetre.h"
    
    
    int main(int argc, char** argv)
    {
        QApplication app(argc, argv);
    
        MaFenetre fenetre;
        fenetre.show();
    
        return app.exec();
    }
    Le code se compile et le programme se lance, le problème c'est que quand j'appuie sur le bouton, le programme plante et se termine. La fonction BoutonAction() est bien exécutée quand on appuie sur le bouton (j'ai testé). Et apparemment je n'arrive pas accéder au contenu des champs de texte depuis la fonction (le slot) appeler par le bouton.

    Donc es-ce qu'il y a une manipulation particulière pour accéder aux variables contenues dans la class depuis une fonction slot appelée par un évènement??

    Merci d'avance pour votre aide.

    -----

  2. #2
    ProgVal

    Re : Programmation C++, problème avec QT (slots)

    Bonjour,

    Dans le header, tu déclares des pointeurs sur tes objets. C'est correct, mais, dans le cpp, tu les déclares à nouveau, et ça, c'est pas bon.
    C'est quelque chose de ce genre qu'il te faut:
    Code:
    #include "MaFenetre.h"
    
    
    MaFenetre::MaFenetre()
    {
        this->setGeometry(1080,100,160,235);
    
        Champ1=new QLineEdit("Champ 1",this);
        Champ1->move(10,30);
        Champ2=new QLineEdit("Champ 2",this);
        Champ2->move(10,60);
    
        bouton=new QPushButton("copie",this);
        bouton->move(40,90);
    
        QObject::connect(bouton, SIGNAL(clicked()), this, SLOT(BoutonAction()));
    
    };
    
    void MaFenetre::BoutonAction(){
    
       Champ2->setText(Champ1->text());
        
    }
    Je dis ça de mémoire; j'ai quelques problèmes avec mon navigateur

    Cordialement,
    ProgVal

  3. #3
    Fred des montagnes

    Re : Programmation C++, problème avec QT (slots)

    Merci!! ça marche. J'avais même pas fait attention... Dire que c'était tout con..

    Donc le sujet est résolu..

  4. #4
    ProgVal

    Re : Programmation C++, problème avec QT (slots)

    Je suis aussi passé par là, lorsque je découvrais Qt (il y a quelques semaines)

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Problème simple de changement de base (avec une touche de programmation)
    Par inviteb303666e dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 02/02/2009, 12h36
  2. programmation avec STEP7
    Par invite0d9691eb dans le forum Technologies
    Réponses: 2
    Dernier message: 07/05/2008, 13h18
  3. Programmation avec Mathematica
    Par invite41cf9427 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 09/11/2007, 09h04
  4. Slots PCI sur un serveur
    Par invitef6dc9e38 dans le forum Matériel - Hardware
    Réponses: 3
    Dernier message: 11/10/2007, 21h09
  5. Programmation avec le st7
    Par inviteb6a46f47 dans le forum Électronique
    Réponses: 2
    Dernier message: 09/04/2007, 13h58
Découvrez nos comparatifs produits sur l'informatique et les technologies.