本文来源:http://blog.csdn.net/ychwn/article/details/4313361

 这个是客户端的实现,查看服务器端实现请看这里

程序入口(main.cpp):

 

[cpp] 
view plain
copy

  1. #include <QtGui>  
  2. #include <QApplication>  
  3. #include <QProcess>  
  4. #include <QTextCodec>  
  5. #include “Update.h”  
  6. int main(int argc, char *argv[])  
  7. {  
  8.     QApplication a(argc, argv);  
  9.     QTextCodec::setCodecForTr(QTextCodec::codecForName(“UTF-8”));  
  10.     QTextCodec::setCodecForLocale(QTextCodec::codecForName(“UTF-8”));  
  11.     QTextCodec::setCodecForCStrings(QTextCodec::codecForName(“UTF-8”));  
  12.     Update *update=new Update();  
  13.     return a.exec();  
  14. }  

 

 

客户端用Qt设计师画了一个界面,有一个进度条和四个标签:

界面

 

Update类继承自Qt设计师生成的类,所以界面可以在这个类中控制。该类的定义如下:

 

 

[cpp] 
view plain
copy

  1. #ifndef UPDATE_H  
  2. #define UPDATE_H  
  3. #include <QtGui/QDialog>  
  4. #include <QtGui/QMessageBox>  
  5. #include <QFile>  
  6. #include <QTcpSocket>  
  7. #include <QDataStream>  
  8. #include <QProcess>  
  9. #include <QDatetime>  
  10. #include “ui_ProgressBar.h”  
  11. class Update : public QDialog,public Ui::ProgressBarClass  
  12. {  
  13.     Q_OBJECT  
  14. public:  
  15.     Update(QWidget *parent = 0);  
  16.     ~Update();  
  17. private:  
  18.     QTcpSocket *clientSocket;  
  19.     quint64 nextBlockSize;  
  20.     QString version,version_s;  
  21.     int bytesWritten;  
  22. private slots:  
  23.     void disconnect();  
  24.     void communicate();  
  25. };  
  26. #endif // UPDATE_H  

 

 

类的实现:

 

 

[cpp] 
view plain
copy

  1. #include “Update.h”  
  2. Update::Update(QWidget *parent)  
  3.     : QDialog(parent)  
  4. {  
  5.       
  6. }  
  7. void Update::disconnect()  
  8. {  
  9.    
  10. }