I tried to get remainingTime of downloading a file, as you can see from the source code below, i set some variables on updateFileStatus SLOT which i connected to updateProgress signal from QNetworkReply.
The problem is, the result fo the remainingTime is nor correct, it's return wrong time like 20:32:17 ... [QTime string format] // when i return the integer values of hour, minute, remSecond it's something like empty/null/uninitialized variable'

Qt Code:
  1. QString Status::remainingTime() const
  2. {
  3.  
  4. if(_downloadRate){
  5. qDebug() << _downloadRate << "###" << _totalLength << "###" << _completedLength;
  6. int speed = _downloadRate;
  7. int remLength = _totalLength - _completedLength;
  8. int remSecond = remLength/speed;
  9. int hour = remSecond/3600;
  10. remSecond = remSecond%3600;
  11. int minute = remSecond/60;
  12. remSecond = remSecond%60;
  13. return QTime(hour, minute, remSecond).toString();
  14. }
  15.  
  16. return QString("n/a");
  17.  
  18. }
  19.  
  20. QString Status::downloadRate() const
  21. {
  22. if(_downloadRate){
  23. int rate = _downloadRate/1024;
  24. if(rate < 1)
  25. return QString(tr("%1Kb/s").arg(rate));
  26. else if(rate >= 1)
  27. return QString(tr("%1Mb/s").arg(rate));
  28. }
  29. return QString(tr("n/a"));
  30. }
  31.  
  32. void Status::updateFileStatus(qint64 bytesReceived, qint64 bytesTotal)
  33. {
  34. qDebug() << _startTime->elapsed();
  35. if(!_totalLength)
  36. _totalLength = bytesTotal;
  37. _completedLength = bytesReceived;
  38. _progress = _completedLength*100/_totalLength;
  39. _downloadRate = _completedLength / _startTime->elapsed();
  40. }
To copy to clipboard, switch view to plain text mode