Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- code:
- mainwindow.h
- @
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
- #include <QMainWindow>
- #include <QObject>
- #include <QNetworkAccessManager>
- #include <QNetworkRequest>
- #include <QNetworkReply>
- #include <QUrl>
- #include <QDateTime>
- #include <QFile>
- #include <QDebug>
- #include <QProgressBar>
- namespace Ui {
- class MainWindow;
- }
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
- public:
- explicit MainWindow(QWidget *parent = 0);
- ~MainWindow();
- private slots:
- bool erreurTrouvee = false;
- QProgressBar *progression;
- void on_Update_clicked();
- void on_BQuitter_clicked();
- void on_Jouer_clicked();
- void enregistrer();
- void progressionTelechargement(qint64 bytesReceived, qint64 bytesTotal);
- void messageErreur(QNetworkReply::NetworkError);
- private:
- Ui::MainWindow *ui;
- };
- #endif // MAINWINDOW_H
- @
- main.cpp
- @
- #include "mainwindow.h"
- #include <QApplication>
- INT main(INT argc, char *argv[])
- {
- QApplication a(argc, argv);
- MainWindow w;
- w.show();
- RETURN a.exec();
- }
- @
- mainwindow.cpp
- @
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- #include "QProcess"
- #include <QNetworkAccessManager>
- #include <QNetworkReply>
- #include <QUrl>
- #include <QNetworkRequest>
- #include <QFile>
- #include <QtNetwork>
- #include <QMessageBox>
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- void MainWindow::on_BQuitter_clicked()
- {
- qApp->EXIT();
- }
- void MainWindow::on_Jouer_clicked()
- {
- QString program = "./game.x86_64";
- QProcess *myProcess = new QProcess(this);
- myProcess->startDetached(program);
- }
- void MainWindow::on_Update_clicked()
- {
- CONST QUrl url = QUrl ("MyURL");
- CONST QNetworkRequest requete(url); //ON crée notre requête
- QNetworkAccessManager *m = new QNetworkAccessManager; //ON crée le QNetworkAccessManager qui va traiter la requête
- QNetworkReply *r = m->GET(requete);
- connect(r, SIGNAL(ERROR(QNetworkReply::NetworkError)), this, SLOT(messageErreur(QNetworkReply::NetworkError)));
- connect(r, SIGNAL(finished()), this, SLOT(enregistrer()));
- connect(r, SIGNAL(downloadProgress(qint64, qint64)), this, SLOT(progressionTelechargement(qint64, qint64) ));
- }
- void MainWindow::enregistrer()
- {
- //ON vérifie qu'il n'y a pas eu d'erreur.
- IF(!erreurTrouvee)
- {
- QNetworkReply *r = qobject_cast<QNetworkReply*>(sender()); //ON récupère la réponse du serveur
- QFile f("fichier.txt"); //ON ouvre le fichier
- IF ( f.OPEN(QIODevice::WriteOnly) )
- {
- f.WRITE(r->readAll()); ////ON lit la réponse du serveur que l'on met dans un fichier
- f.CLOSE(); //ON ferme le fichier
- r->deleteLater();
- //ON indique que tout s'est bien passé
- QMessageBox::information(this, "Fin de téléchargement", "Téléchargement terminé !");
- }
- CLOSE();
- }
- }
- void MainWindow::progressionTelechargement(qint64 bytesReceived, qint64 bytesTotal)
- {
- IF (bytesTotal != -1)
- {
- progression->setRange(0, bytesTotal);
- progression->setValue(bytesReceived);
- }
- }
- void MainWindow::messageErreur(QNetworkReply::NetworkError)
- {
- erreurTrouvee = true; //ON indique qu'il y a eu une erreur au slot enregistrer
- 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();
- }
- @
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement