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.cpp
emit t1->sendLocationsFromThread(x, y, w, h);
changed in mainwindow.cpp
bool 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