Seite 1 von 1

QObject: Cannot create children for a parent that is in a different thread.

Verfasst: Mittwoch 24. März 2021, 15:42
von m.g.o.d
Hallo Zusammen,

ich habe ein sehr merkwüriges Verhalten: In meinem Programm habe ich eine Datenbank mit Konfigurationen. Wenn ich zwei Konfigurationen erstelle, wird alles sauber abgearbeitet. Sobald es mehr werden, erhalte ich folgenden Fehler.

QObject: Cannot create children for a parent that is in a different thread.
(Parent is QTextDocument(0x22c42f04b00), parent's thread is QThread(0x22c3834ebf0), current thread is GraphicAlarmMachine(0x22c42f50f40)

Ich kann das leider überhaupt nicht eingrenzen! Ich habe den Thread GraphicAlarmMachine(0x22c42f50f40) sauber mit der GUI verbunden und der Datenaustausch funktioniert über die Signale...was alles bei 2 Konfigurationen problemlos funktioniert, und dann auf einmal nicht mehr?! Mal gehen 3 Konfigurationen, dann macht eine vierte Probleme...dann ist es mal bei weniger ein Problem...

Könnt ihr mir sagen, was ein QTextDocument sein soll?! Ist damit ein QTextLine widget in der PyQt5 GUI gemeint?
Wie kann ich mir auslesen, welche Threadbezeichnung was meint? Es gibt in dem Traceback außerdem 3 Treads, ich starte aber nur 2?!

Ich glaube jetzt groß Quellcodes posten, macht noch keinen Sinn, weil ich erstmal eingrenzen muss, was der Fehler überhaupt meint? Es gibt in meinem Programm nur ein Thread für die GUI und ein worker Thread (QThread)...

Würde mich riesig über Hinweise freuen!
Besten Dank,
Marc

Re: QObject: Cannot create children for a parent that is in a different thread.

Verfasst: Mittwoch 24. März 2021, 16:15
von Sirius3
Du scheinst irgendetwas an der GUI direkt im GraphicAlarmMachine-Thread zu ändern. Ohne Code läßt sich das nicht besser eingrenzen.

Re: QObject: Cannot create children for a parent that is in a different thread.

Verfasst: Mittwoch 24. März 2021, 17:17
von __blackjack__
@m.g.o.d: Wenn Du zwei Threads startest, dann hast Du insgesamt 3, denn ohne irgendeinen Thread zu starten hat man ja bereits den Hauptthread in dem das Programm gestartet ist.