When you mixing frameworks it is a bit more tricky. IMHO safest and the simplest way to call slots from other thread which is not a QThread is to use QMetaObject::invokeMethod with type parameter Qt::QueuedConnection (see Qt::ConnectionType-enum).
For example try something like this:
"setText",
Qt::QueuedConnection,
QMetaObject::invokeMethod(pointerToStateLabel,
"setText",
Qt::QueuedConnection,
Q_ARG(QString, QString("Done"));
To copy to clipboard, switch view to plain text mode
Added after 9 minutes:
PS. First try to enforce Qt::QueuedConnection when connecting QObject created in this none-qt thread. Just add this value at the end of each connect (default value is Qt::AutoConnection means auto-determinate kind of connection and this may cause your problems).
Bookmarks