J'essaie de coder quelque chose qui télécharge un fichier à partir d'un serveur Web et l'enregistre, montrant la progression du téléchargement dans un QProgressBar. Maintenant, il y a des façons de le faire en Python normal et c'est facile. Le problème est qu'il verrouille l'actualisation de la barre de progression. La solution consiste à utiliser la classe QNetworkManager de PyQT. Je peux très bien télécharger des choses, je ne peux pas obtenir la configuration pour montrer les progrès sur la barre de progression. Here's un exemple:pyQT QNetworkManager et ProgressBars
class Form(QDialog):
def __init__(self,parent=None):
super(Form,self).__init__(parent)
self.progressBar = QProgressBar()
self.reply = None
layout = QHBoxLayout()
layout.addWidget(self.progressBar)
self.setLayout(layout)
self.manager = QNetworkAccessManager(self)
self.connect(self.manager,SIGNAL("finished(QNetworkReply*)"),self.replyFinished)
self.Down()
def Down(self):
address = QUrl("http://stackoverflow.com") #URL from the remote file.
self.manager.get(QNetworkRequest(address))
def replyFinished(self, reply):
self.connect(reply,SIGNAL("downloadProgress(int,int)"),self.progressBar, SLOT("setValue(int)"))
self.reply = reply
self.progressBar.setMaximum(reply.size())
alltext = self.reply.readAll()
#print alltext
#print alltext
def updateBar(self, read,total):
print "read", read
print "total",total
#self.progressBar.setMinimum(0)
#self.progressBar.setMask(total)
#self.progressBar.setValue(read)
Dans ce cas, ma méthode "updateBar" n'est jamais appelé ... des idées?