I don't know how your logic works or how you have organized the exercises whith the threads.
As far as I know (what Qt sais..) the GUI should only run in the main thread (the first started one) and should only be manipulated from this thread.
Maybe that could be an issue in your case?
Yes Signals and Slots should be independent but I'm not sure what the intention of Qt is within multithreading context.
In a small project I did, I connected via signal from another thread to a slot in the main thread. This slot was then updating the GUI.
In this case I had no problems.