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());
}
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
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é.
× 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.