Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récupérer le texte écrit dans un QLineEdit

    10 mai 2022 à 9:57:39

    Bonjour, 

    Je suis débutant en C++ et j'utilise le Qt 4.7.4. Pour mes cours, je dois réaliser un projet qui me demande de créer une application pour Windows.

    Mais là, je bloque, je dois récupérer du texte que l'utilisateur écrit dans un QLineEdit et l'enregistrer dans un fichier .txt. J'ai fait de longues recherches mais je ne suis pas parvenu à trouver comment faire.

    Voici mon code :

    #include <QLineEdit>
    #include <QLabel>
    #include <fstream>
    #include <QTime>
    #include <QString>
    #include <QTextStream>
    #include <QFile>
    #include <QDir>
    
    void delay();
    
    
    int main(int argc, char** argv)
    {
        QApplication app(argc, argv);
        QWidget* w = new QWidget;
                 w->resize(600,400);
                 w->setMaximumSize(600,400);
    
    
                QLabel* text1 = new QLabel("Prénom\n(Exemple : Jean)");
                QLineEdit* clientFirstName = new QLineEdit();
                clientFirstName->setMaximumSize(100,50);
                QLabel* text2 = new QLabel("Nom\n(Exemple : Dupont)");
                QLineEdit* clientLastName = new QLineEdit();
                clientLastName->setMaximumSize(100,50);
                QLabel* text3 = new QLabel("Mail\n(Exemple : jeandupont@gmail.com)");
                QLineEdit* clientMail = new QLineEdit();
                clientMail->setMaximumSize(100,50);
                QLabel* text4 = new QLabel("N° de téléphone\n(Exemple : xx xx xx xx xx)");
                QLineEdit* clientTelNumber = new QLineEdit();
                clientTelNumber->setMaximumSize(100,50);
                QPushButton* saveButton = new QPushButton("Enregistrer");
                w->setWindowTitle("Enregistrer un nouveau client");
    
    
                QGridLayout *lay = new QGridLayout;
                lay->addWidget(text1,0,0);
                lay->addWidget(clientFirstName,1,0);
                lay->addWidget(text2,2,0);
                lay->addWidget(clientLastName,3,0);
                lay->addWidget(text3,4,0);
                lay->addWidget(clientMail,5,0);
                lay->addWidget(text4,6,0);
                lay->addWidget(clientTelNumber,7,0);
                lay->addWidget(saveButton,8,0);
                w->setLayout(lay);
    
                QFile enregistrer("clientInfo.txt");
                enregistrer.open(QIODevice::WriteOnly | QIODevice::Text);
                QTextStream in(&enregistrer);
                while(!in.atEnd())
    
                w->show();
                //delay();
                enregistrer(clientFirstName*, clientLastName*, clientMail*, clientTelNumber*);
                return app.exec();
    }
    
    void enregistrer(QLineEdit &firstName, QLineEdit &lastName, QLineEdit &mail, QLineEdit &number) {
        std::ofstream clientInfo ("clientInfo.txt", std::ios::app);
        clientInfo << "Nom: " <<  firstName << "\n";
        clientInfo << "Prénom: " << lastName << "\n";
        clientInfo << "Mail: " << mail << "\n";
        clientInfo << "Numéro: " << number << "\n";
        clientInfo.write(firstName.text());
    }

    Pouvez-vous m'aider s'il vous plaît ?

    • Partager sur Facebook
    • Partager sur Twitter
      11 mai 2022 à 14:03:34

      Si c'est uniquement pour recuperer le contenu d'un QLineEdit, utilise displayText(): https://doc.qt.io/qt-5/qlineedit.html#displayText-prop

      Mais text() devrai aussi marcher je pense(d'apres la doc). Qu'est ce qui ne marche donc pas quand tu fais firstname.text() ? C'est vide ? Erreur ?

      Bonjour

      • Partager sur Facebook
      • Partager sur Twitter

      Récupérer le texte écrit dans un QLineEdit

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      • Editeur
      • Markdown