Seite 1 von 1
MainThread Signal -> QThread Slot
Verfasst: 5. August 2011 17:32
von DBGTMaster
Hallo,
ist es möglich, wenn vom MainThread ein bestimmtes Signal kommt, dass dieses Signal der Event- Loop des QThreads ausführt??
Also was ich will:
Wenn Benutzer in der App auf einen bestimmten Button klickt, soll ein Slot im QThread aufgerufen werden.
Verbinde ich vom MainThread einen Slot vom QThread, so stürzt das Programm beim Aufruf des Slots ab.
Wie kann ich das lösen??
Re: MainThread Signal -> QThread Slot
Verfasst: 5. August 2011 17:38
von Christian81
Signals/Slots funktionieren auch über Threadgrenzen hinweg.
Wenn es crasht ists ein Programmierfehler - aber ohne Code bzw. minimalen Beispiel kann man nichts machen.
Re: MainThread Signal -> QThread Slot
Verfasst: 5. August 2011 17:51
von ScyllaIllciz
Wie kann ich das lösen??
Ich würde als erstes meinen Debugger mal fragen

Ansonsten minimales kompilierbares Beispiel1
Re: MainThread Signal -> QThread Slot
Verfasst: 5. August 2011 18:19
von solarix
Fehlt ein "moveToThread(this) im CTor des QThreads..? Wenn das fehlt, wird der Slot im Kontext des MainThreads ausgeführt.. das muss zwar nicht garantiert zu einem Crash führen, ist aber sicher nicht so wie vom Entwickler erwartet..
Re: MainThread Signal -> QThread Slot
Verfasst: 5. August 2011 18:34
von DBGTMaster
Hallo,
wollte ein minimal- kompilierbares Beispiel basteln, nur Problem ist, dieses lässt sich natürlich problemlos kompilieren und ausführen...
Werd dann mal, wenn ich Zeit finde, etwas debuggen müssen
// Edit: was hat es zu bedeuten, wenn der Debugger "<unavailable synchronous data>" bei der Variable this schreibt bei der Absturzstelle??
Re: MainThread Signal -> QThread Slot
Verfasst: 5. August 2011 19:24
von DBGTMaster
Ok, hab meine Blödheit nun entdeckt

...
Hatte ein Objekt in einer Methode generiert, dieses aber nicht zurückgegeben, und dann mit dem nicht zurückgegebenen Zeiger auf Methoden zugegriffen, mich wunderts nur, dass das Programm nie früher abgestürzt ist...
Nun ein return eingefügt und jetzt läuft alles
lG
Re: MainThread Signal -> QThread Slot
Verfasst: 7. August 2011 15:22
von franzf
DBGTMaster hat geschrieben:Nun ein return eingefügt und jetzt läuft alles

So etwas sollte aber der Compiler anmeckern! Also immer brav die ganzen Warnings lesen
