i did a very bad mistake...
The mistake is creating two instance of workerThread class, so connection returns true because of the instance of workerThread is just emitting but other instance is just connecting. So it needs to be only one instance and one connection in my case.
added to workerthread.h:extern workerThread *t1;
changed in workerthread.cppemit t1->sendLocationsFromThread(x, y, w, h);
changed in mainwindow.cppbool callBackThreadConn = connect(w1, SIGNAL(sendLocationsFromThread(int, int, int, int)), this, SLOT(onLocationChanged(int, int, int, int)));
it's ok now, data can be send to GUI