Your construction is incorrect. Objects that are members of QThread subclass live in the thread where the QThread object was created, not in the one the QThread object controls. You are likely to run into trouble later. To avoid the trouble you can move the QThread object to the thread it contols using QObject::moveToThread().

Now for your question - there is nothing special you have to do, just create a slot in your window that will take an integer and then issue a connect statement between counter's and your window's signals/slots. Just remember you need pointers to both objects available in the same moment. It might be easier if you declare a signal in your QThread subclass and connect counter's signal to the thread controller's signal and then connect the thread's signal to a slot in main window.