2012-09-14 64 views
0

我在這裏有一些代碼產生一個wxProgressDialog並從互聯網下載文件,但我無法弄清楚如何使文件下載進度欄更新。我已經在尋找這方面的文檔,但令人驚訝的是,我一直無法找到類似於我想要完成的事情。如何使用進度對話框在wxWidgets中下載文件?

void Downloader::Download(void) 
{ 
    wxProgressDialog dlgProgress(_T("Downloading..."), 
           _T("Please wait while your file downloads.")); 

    wxURL dl(Url); 
    if (dl.GetError() == wxURL_NOERR) 
    { 
     wxInputStream *in = dl.GetInputStream(); 
     if (in && in->IsOk()) 
     { 
      wxFFileOutputStream out(mPath); 
      in->Read(out); 
     } 
     delete in; 
    } 
} 
+0

你真的應該解釋你是如何設法找不到更新文檔的()... –

+0

當然,我做了,但Update()並不神奇。我的問題是保持這些更新與下載進度同步。 – vinnydiehl

回答

0

看在wxWidgets的分佈「對話框」樣,你會看到,你可以調用Update()Pulse()更新對話框。

+0

這不回答我的問題 - 如何跟蹤下載文件的下載進度?我知道如何更新/脈衝進度條。 – vinnydiehl

+0

啊,對不起,我誤解了你的問題。但後來你寫了「無法弄清楚如何使進度條更新」。無論如何,如果你事先知道文件的大小,你可以以一定大小的塊(4KB是常見的)讀取它並像這樣管理它。您無法通過使用當前的Read()重載讀取整個流。 –