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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| FenPrincipale::FenPrincipale()
{
resize(212, 123);
setWindowTitle("zPosteur");
verticalLayout = new QVBoxLayout(this);
formLayout = new QFormLayout();
label = new QLabel(this);
label->setText("Pseudo :");
formLayout->setWidget(0, QFormLayout::LabelRole, label);
pseudoEdit = new QLineEdit(this);
pseudoEdit->setMaxLength(20);
formLayout->setWidget(0, QFormLayout::FieldRole, pseudoEdit);
label_2 = new QLabel(this);
label_2->setText("Message :");
formLayout->setWidget(1, QFormLayout::LabelRole, label_2);
textEdit = new QLineEdit(this);
textEdit->setMaxLength(200);
formLayout->setWidget(1, QFormLayout::FieldRole, textEdit);
verticalLayout->addLayout(formLayout);
boutonEnvoyer = new QPushButton(this);
boutonEnvoyer->setText("Envoyer !");
verticalLayout->addWidget(boutonEnvoyer);
progression = new QProgressBar(this);
progression->setValue(0);
verticalLayout->addWidget(progression);
connect(boutonEnvoyer, SIGNAL(clicked()), this, SLOT(envoi()));
}
void FenPrincipale::envoi()
{
boutonEnvoyer->setEnabled(false);
const QUrl url = QUrl("http://serialtueur.free.fr/sdz/post.php?password=42"); //On récupère l'URL entrée par l'utilisateur.
QNetworkRequest requete(url); //On crée notre requête
requete.setRawHeader("Content-Type", "text/html");
QString donnees = "text=" + textEdit->text() + "&pseudo=" + pseudoEdit->text();
QNetworkAccessManager *m = new QNetworkAccessManager;
QNetworkReply *r = m->post(requete, donnees.toLatin1());
connect(r, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(messageErreur(QNetworkReply::NetworkError)));
connect(r, SIGNAL(finished()), this, SLOT(fin()));
connect(r, SIGNAL(downloadProgress(qint64, qint64)), this, SLOT(progressionEnvoi(qint64, qint64) ));
}
void FenPrincipale::fin()
{
QMessageBox::information(this, "Fin de post", "L'envoi de données par POST a été effectué avec succès !");
close();
}
void FenPrincipale::messageErreur(QNetworkReply::NetworkError)
{
QNetworkReply *r = qobject_cast<QNetworkReply*>(sender());
QMessageBox::critical(this, "Erreur", "Erreur lors du chargement. Vérifiez votre connexion internet ou réessayez plus tard <br /><br /> Code de l'erreur : <br /><em>" + r->errorString() + "</em>");
close();
}
void FenPrincipale::progressionEnvoi(qint64 bytesReceived, qint64 bytesTotal)
{
if (bytesTotal != -1)
{
progression->setRange(0, bytesTotal);
progression->setValue(bytesReceived);
}
} |
Partager