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?