Сначала я показываю свой код, затем объясняю свою проблему:
...
// 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);
}
Так вот, как я пытаюсь обновить свой progressBar при загрузке файла. Проблема в том, что он не справится с работой. Когда он начинает загружаться, я устанавливаю значение индикатора выполнения на 0, затем (благодаря этому слоту) он фактически не будет отображать прогресс, но сразу переместится на 100% (даже до того, как завершит загрузку).
Я уже проверил пример HTTP-клиента и скопировал часть индикатора выполнения, она предназначена для загрузки и более или менее аналогична загрузке, но использует сигнал dataReadProgress (необходим для загрузки) И он works
отлично .
Кто-нибудь знает, как решить эту проблему для загрузки?