Quantcast
Channel: Jobs
Viewing all articles
Browse latest Browse all 18427

how to reflect download progress onto QtableView or QtableWidget ?

$
0
0
I want to make a download tool .I use the following part code for downloading from PyQt4.QtCore import * from PyQt4.QtGui import * from PyQt4.QtNetwork  import * import sys class DownloadTask(QObject):     @staticmethod     def speed(byte):         if byte<1024:             unit = "B/S"         elif byte < 1024*1024:             byte //= 1024;             unit = "KB/S";         else :          byte//= 1024*1024          unit = "MB/S";         return '{} {}'.format(byte,unit)         def __init__(self, downloadLink):         super(DownloadTask, self).__init__()         self.manager=QNetworkAccessManager () #        self.bytesReceived = 0         self.bytesLastReceived =0         self.speedRate='0 KB/S'         self.downloadPart=0         self.bytesReceived=0                 url=QUrl(downloadLink)         self.request=QNetworkRequest (url)         self.request.setRawHeader("User-Agent" ,'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17 SE 2.X MetaSr 1.0')         self.currentDownload=self.manager.get(self.request)                 self.downloadTime = QTimer()         self.downloadTime.timeout.connect(self.showSpeed)         self.downloadTime.start(1000)                 fileInfo = QFileInfo(url.path())         fileName = fileInfo.fileName()         self.output=QFile(fileName)         self.output.open(QIODevice.WriteOnly)                 self.progressBar=QProgressBar()         self.progressBar.setValue(0)                         self.currentDownload.downloadProgress.connect(self.downloadProgress)         self.currentDownload.finished.connect(self.downloadFinished)         self.currentDownload.readyRead.connect(self.downloadReadyRead)             def downloadProgress(self, bytesReceived, bytesTotal):         self.downloadPart=bytesReceived/bytesTotal#'{:.0%}'.format()         self.bytesReceived=bytesReceived           #        self.__updateInfoLabel()     def showSpeed(self):         self.progressBar.setValue(self.downloadPart)                 br=self.bytesReceived-self.bytesLastReceived         self.bytesLastReceived = self.bytesReceived         self.speedRate=self.__class__.speed(br) #        print(self.downloadPart, self.speedRate)             def downloadFinished(self):         print('done!!!!!')         self.output.close();         self.currentDownload.deleteLater();         #     startNextDownload();         def downloadReadyRead(self):         self.output.write(self.currentDownload.readAll()) now I am facing a problem :I don’t know how to reflect download progress onto QtableView or QtableWidget ?especially downloading 2 or more files at the same time . for instance ,how to reflect download progress onto this QtableView ? http://postimg.org/image/7hr2xewof/ here is 2 download audio link for test http://down.51voa.com/201305/syrian-strife-spilling-over-infecting-region.mp3 http://down.51voa.com/201305/us-military-sex-abuse-problem.mp3 anyone can give a little sample ? thanks in advance !!!

Viewing all articles
Browse latest Browse all 18427

Trending Articles