Ich versuche, etwas zu kodieren, das eine Datei von einem Webserver herunterlädt und speichert, den Download-Fortschritt in einer QProgressBar zeigend. Jetzt gibt es Möglichkeiten, dies in regulären Python zu tun, und es ist einfach. Problem ist, dass es die Aktualisierung der Fortschrittsbalken sperrt. Die Lösung besteht darin, die QNetworkManager-Klasse von PyQT zu verwenden. Ich kann Sachen einfach gut damit herunterladen, ich kann einfach nicht das Setup bekommen, um den Fortschritt auf der Fortschrittsbalken zu zeigen. Heres ein Beispiel:pyQT QNetworkManager und 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)
In diesem Fall meine Methode "updateBar" wird nie irgendwelche Ideen genannt ...?