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

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
m.g.o.d
User
Beiträge: 75
Registriert: Samstag 4. April 2020, 13:17

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
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

Du scheinst irgendetwas an der GUI direkt im GraphicAlarmMachine-Thread zu ändern. Ohne Code läßt sich das nicht besser eingrenzen.
Benutzeravatar
__blackjack__
User
Beiträge: 13006
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten