Advertisement
Guest User

Untitled

a guest
Jan 18th, 2015
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
QBasic 3.72 KB | None | 0 0
  1. code:
  2.  
  3.  
  4. mainwindow.h
  5.  
  6. @
  7. #ifndef MAINWINDOW_H
  8. #define MAINWINDOW_H
  9.  
  10. #include <QMainWindow>
  11. #include <QObject>
  12. #include <QNetworkAccessManager>
  13. #include <QNetworkRequest>
  14. #include <QNetworkReply>
  15. #include <QUrl>
  16. #include <QDateTime>
  17. #include <QFile>
  18. #include <QDebug>
  19. #include <QProgressBar>
  20.  
  21.  
  22. namespace Ui {
  23. class MainWindow;
  24. }
  25.  
  26. class MainWindow : public QMainWindow
  27. {
  28.     Q_OBJECT
  29.  
  30. public:
  31.     explicit MainWindow(QWidget *parent = 0);
  32.     ~MainWindow();
  33.  
  34. private slots:
  35.     bool erreurTrouvee = false;
  36.  
  37.     QProgressBar *progression;
  38.  
  39.     void on_Update_clicked();
  40.  
  41.     void on_BQuitter_clicked();
  42.  
  43.     void on_Jouer_clicked();
  44.  
  45.     void enregistrer();
  46.  
  47.     void progressionTelechargement(qint64 bytesReceived, qint64 bytesTotal);
  48.  
  49.     void messageErreur(QNetworkReply::NetworkError);
  50.  
  51. private:
  52.     Ui::MainWindow *ui;
  53. };
  54.  
  55. #endif // MAINWINDOW_H
  56.  
  57. @
  58.  
  59.  
  60.  
  61.  
  62. main.cpp
  63.  
  64.  
  65. @
  66. #include "mainwindow.h"
  67. #include <QApplication>
  68.  
  69. INT main(INT argc, char *argv[])
  70. {
  71.     QApplication a(argc, argv);
  72.     MainWindow w;
  73.     w.show();
  74.  
  75.     RETURN a.exec();
  76. }
  77.  
  78. @
  79.  
  80.  
  81.  
  82.  
  83. mainwindow.cpp
  84.  
  85.  
  86. @
  87. #include "mainwindow.h"
  88. #include "ui_mainwindow.h"
  89. #include "QProcess"
  90. #include <QNetworkAccessManager>
  91. #include <QNetworkReply>
  92. #include <QUrl>
  93. #include <QNetworkRequest>
  94. #include <QFile>
  95. #include <QtNetwork>
  96. #include <QMessageBox>
  97.  
  98.  
  99. MainWindow::MainWindow(QWidget *parent) :
  100.     QMainWindow(parent),
  101.     ui(new Ui::MainWindow)
  102. {
  103.     ui->setupUi(this);
  104. }
  105.  
  106. MainWindow::~MainWindow()
  107. {
  108.     delete ui;
  109. }
  110.  
  111. void MainWindow::on_BQuitter_clicked()
  112. {
  113.     qApp->EXIT();
  114. }
  115.  
  116. void MainWindow::on_Jouer_clicked()
  117. {
  118.  
  119.     QString program = "./game.x86_64";
  120.  
  121.     QProcess *myProcess = new QProcess(this);
  122.     myProcess->startDetached(program);
  123. }
  124.  
  125. void MainWindow::on_Update_clicked()
  126. {
  127.     CONST QUrl url = QUrl ("MyURL");
  128.     CONST QNetworkRequest requete(url); //ON crée notre requête
  129.  
  130.     QNetworkAccessManager *m = new QNetworkAccessManager; //ON crée le QNetworkAccessManager qui va traiter la requête
  131.     QNetworkReply *r = m->GET(requete);
  132.  
  133.     connect(r, SIGNAL(ERROR(QNetworkReply::NetworkError)), this, SLOT(messageErreur(QNetworkReply::NetworkError)));
  134.     connect(r, SIGNAL(finished()), this, SLOT(enregistrer()));
  135.     connect(r, SIGNAL(downloadProgress(qint64, qint64)), this, SLOT(progressionTelechargement(qint64, qint64) ));
  136.  
  137. }
  138.  
  139. void MainWindow::enregistrer()
  140. {
  141.     //ON vérifie qu'il n'y a pas eu d'erreur.
  142.     IF(!erreurTrouvee)
  143.     {
  144.         QNetworkReply *r = qobject_cast<QNetworkReply*>(sender()); //ON récupère la réponse du serveur
  145.         QFile f("fichier.txt"); //ON ouvre le fichier
  146.  
  147.         IF ( f.OPEN(QIODevice::WriteOnly) )
  148.         {
  149.             f.WRITE(r->readAll()); ////ON lit la réponse du serveur que l'on met dans un fichier
  150.             f.CLOSE(); //ON ferme le fichier
  151.             r->deleteLater();
  152.  
  153.             //ON indique que tout s'est bien passé
  154.             QMessageBox::information(this, "Fin de téléchargement", "Téléchargement terminé !");
  155.         }
  156.         CLOSE();
  157.     }
  158. }
  159.  
  160. void MainWindow::progressionTelechargement(qint64 bytesReceived, qint64 bytesTotal)
  161. {
  162.     IF (bytesTotal != -1)
  163.     {
  164.         progression->setRange(0, bytesTotal);
  165.         progression->setValue(bytesReceived);
  166.     }
  167. }
  168.  
  169. void MainWindow::messageErreur(QNetworkReply::NetworkError)
  170. {
  171.     erreurTrouvee = true; //ON indique qu'il y a eu une erreur au slot enregistrer
  172.     QNetworkReply *r = qobject_cast<QNetworkReply*>(sender());
  173.     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>");
  174.     CLOSE();
  175. }
  176. @
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement