ich habe ein Problem bei dem handling von QThread. und zwar stürzt mir manchmal die Gui einfach ab und bekomme den Fehler:
QObject::connect: Cannot queue arguments of type 'QTextCursor'
(Make sure 'QTextCursor' is registered using qRegisterMetaType().)
Hintergrund:
ich starte eine oberfläche und in der soll mit einem Thread etwas geschrieben werden.
Hier der Code:
Code: Alles auswählen
class MyGuiThread(QtCore.QThread):
def __init__(self, dieGui, derWorker):
QtCore.QThread.__init__(self)
self.darfLaufen=False
self.dieGui= dieGui
self.derWorker= derWorker
def startStop(self):
if self.darfLaufen:
self.darfLaufen = False
print "Ich halte MyGuiThread an"
print "Ich halte MyWorkerThread an"
#self.derWorker.killAll()
else:
self.darfLaufen=True
print "Ich starte MyGuiThread"
print "Ich starte MyWorkerThread"
self.start()
def run(self):
n = 0
step = 1
while self.darfLaufen:
n += step
print n, "oder beliebige GUI Akionen, zb knopf aendern"
# dazu muesste das Threadf Object das GUI Object erhalten
# hier dann die aenderung an der gui, zb die werte gelesen und anzeigen o.ae.
#self.derWorker.doChange()
self.dieGui.area1.appendPlainText(str(n) +"\n")
self.dieGui.area3.appendPlainText(str(n)+'\n')
self.dieGui.area2.appendPlainText(str(n)+'\n')
time.sleep(1)
Code: Alles auswählen
self.connect(self.uiRef.set, QtCore.SIGNAL("clicked()"), self.guithread.startStop)