ich habe ein kleines Threading Problem in PyQt4 und würde mich sehr über einen Tip freuen. Ich habe eine etwas langwierige Berechnung in 2 Threads ausgelagert. Die starte ich aus meiner Gui heraus in einem weiteren QThread:
Code: Alles auswählen
class AnyThread(QThread):
def __init__(self, parent=None):
QThread.__init__(self,parent)
def run(self):
#In anything werden zwei Tasks gethreaded
self._result = AnyModule.anything()
def getResult(self):
return self._result
... in Gui ...
self.ctimer = QTimer()
self.startProgressBar()
thread = AnyThread()
thread.start()
#1. thread.wait()
thread.finished.connect(self.stopProgressBar)
#2. thread.wait()
self.result = thread.getResult()
Code: Alles auswählen
def startProgressBar(self):
self.progressBar.show()
self.progressBar.setValue(0)
self.ctimer.start(50)
def updateProgressBar(self):
bla bla
def stopProgressBar(self):
print "stopProgressBar"
self.ctimer.stop()
self.progressBar.hide()
"QThread: Destroyed while thread is still running"
Kommentiere ich das erste thread.wait() nicht aus beginnt die ProgressBar erst nach dem Thread und hört nicht mehr auf, verwende ich das 2. thread.wait() läuft der Thread durch und stopProgressBar wir aufgerufen danach, die Progressbar wird aber niemals sichtbar.
Für einen Hinweis der mir Hilft meine Verständnislücke zu füllen vielen Dank im Voraus.