I managed to get rid of the freezing gui. The trick is to make the signal slot connection in c++, when you have gui and logic in seperat threads.
The Connections QML element and the someid.signal.connect... thing dont work here and for some reason it seems that both ends in an "Direct Connection" instead of the wanted "Queued Connection.
=> From C++ it works for me ... and be aware to make both direktions in c++
qml slot < > c++ signal and c++ slot < >qml signal!
Snippet from my code:
@QObject* root=dynamic_cast<QObject*>(m_view->rootObject()); // cast needed because of private inharitance + note QQuickItem include is needed
QObject* obj;
if(root){
obj=root->findChild<QObject*>("winlog");
if(obj){
qDebug()<<"found winlog and connecting signal";
QObject::connect(obj,SIGNAL(connectToDb(QString,QString)),this,SLOT(connect(QString,QString)));
QObject::connect(m_man->getDatabase(),SIGNAL(connectedChanged()),obj,SLOT(onConnectToDbChanged()));
}else{
qDebug()<<"didn't found winlog for connecting signal";
}
}@