Ваш перепредыдущий комментарий неверен
Если отнаследоваться от QThread и в конструкторе сделать moveToThread(this), то мы получаем класс, который полностью существует в своём потоке. И никаких дополнительных телодвижений не надо
Наследование от QThread и вызов в конструкторе moveToThread(this) дает, конечно, необходимый результат, и при быстром решении конкретной задачи может быть использован.
Я предложил решение, рассматривая задачу в общем виде (я же не знаю заранее, как будет использован Worker).
В случае же наследования и использования moveToThread(this) существуют ограничения, о которых необходимо помнить
Нельзя указывать родителя, иначе moveToThread не сработает.
The object cannot be moved if it has a parent.
Если объект без родителя создан в куче (через new), а не на стеке, то необходимо использовать соединение с deleteLater, что иногда является настоящим геморроем.
Если объект создан на стеке, то его принудительное удаление может быть вызвано в момент его работы в другом потоке, что приведет к crash.
Все эти нюансы могут быть неочевидны программистам с малым опытом работы с Qt, его QObject и QThread.