Pyqt4 + Threads
Verfasst: Mittwoch 28. April 2010, 12:37
hi
ich hab einen QDialog in dem ich folgenden slot implementiert habe
der loader ist extrem einfach und schaut wie folgt aus:
aber ich hab 2 probleme :/
1. funktioniert der connect nicht wirklich
2. ist "loader.start()" aus irgend einem grund blockierden?
sollte nicht mit .start der thread im hintergrund gestartet werden und das GUI einfach weiterlaufen und sozusagen "warten" bis einer der slots ausgeführt wird?
ich hab einen QDialog in dem ich folgenden slot implementiert habe
Code: Alles auswählen
def performUpdate(self):
self.re = -1
timeout = 1000
count = 1
loader = FirmwareLoader(self.ui.getHWType(),
self.ui.getdevName(),
self.ui.getElfPath())
loader.start()
self.connect(loader, QtCore.SIGNAL("startupDone()"), self.done)
self.connect(loader, QtCore.SIGNAL("startupError()"), self.error)
def done(self):
print "done"
def error(self):
print "error"
Code: Alles auswählen
class FirmwareLoader(QThread):
'''
classdocs
'''
def __init__(self,hwType,devName,filePath = None,tcsPath = None):
'''
Constructor
'''
QThread.__init__(self, None)
self.hwType = hwType
self.devName = devName
self.filePath = filePath
self.tcsPath = tcsPath
self.re = -1
self.session = 0
self.stopme = 0
self.ret = -1
self.startupDone = QtCore.pyqtSignal()
self.startupError = QtCore.pyqtSignal()
def run(self):
self.re, self.session = Startup (self.hwType,
self.devName,
self.filePath,
self.tcsPath,
True)
if self.re == Success:
self.startupDone.emit()
else:
self.startupError.emit()
def __del__(self):
self.wait()
1. funktioniert der connect nicht wirklich
2. ist "loader.start()" aus irgend einem grund blockierden?
sollte nicht mit .start der thread im hintergrund gestartet werden und das GUI einfach weiterlaufen und sozusagen "warten" bis einer der slots ausgeführt wird?