我首先表明我的代碼,然後我解釋我的問題:QProgressBar問題上傳
... // somewhere in the constructor progressBar = new QProgressBar(this); progressBar->setMinimum(0); progressBar->setMaximum(100); ... connect(&http, SIGNAL(dataSendProgress(int, int)), this, SLOT(updateProgressBar(int, int))); ... void MainWindow::updateProgressBar(int bytesSent, int total) { progressBar->setMaximum(total); progressBar->setValue(bytesSent); }
所以這就是我儘量讓我的進度條,當我上傳文件被更新。問題是,它不會做這項工作。當它開始上傳時,我將進度條的值設置爲0,然後(由於此插槽)它不會實際顯示進度,但會立即跳至100%(甚至在上傳完成之前)。
我已經檢查過HTTP客戶端的例子,並且複製了進度條部分,它是用於下載的,並且或多或少與上傳相同,但它使用dataReadProgress信號(需要下載)並且它完美地與works
相關。
有誰知道如何解決這個上傳?
你執行一個單獨的線程上傳?如果您在GUI線程中執行上載,則由於線程被阻止,進度條可能不會更新。 – 2010-04-02 16:14:50