C++ 如何使用进度对话框在wxWidgets中下载文件?
我这里有一些生成wxProgressDialog并从internet下载文件的代码,但我不知道如何在文件下载时更新进度条。我已经查找了有关这方面的文档,但令人惊讶的是,我还没有找到与我试图实现的目标类似的东西C++ 如何使用进度对话框在wxWidgets中下载文件?,c++,dialog,download,progress-bar,wxwidgets,C++,Dialog,Download,Progress Bar,Wxwidgets,我这里有一些生成wxProgressDialog并从internet下载文件的代码,但我不知道如何在文件下载时更新进度条。我已经查找了有关这方面的文档,但令人惊讶的是,我还没有找到与我试图实现的目标类似的东西 void Downloader::Download(void) { wxProgressDialog dlgProgress(_T("Downloading..."), _T("Please wait while y
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;
}
}
查看wxWidgets发行版中的“dialogs”示例,您将看到您可以调用或来更新对话框。您确实应该解释您是如何找到update()的文档的……我当然找到了,但update()并不是神奇的。我的问题是保持这些更新与下载进度同步。这并不能回答我的问题-如何在文件下载时跟踪其下载进度?我知道如何更新进度条。啊,对不起,我误解了你的问题。但后来你写了“不知道如何更新进度条”。无论如何,如果您事先知道文件的大小,您可以以一定大小的块(4KB是常见的)读取它,并像这样管理它。您不能使用当前执行的Read()重载读取整个流。