Вот, даже челик в комменте правильно подметил, в документации написано одна, а реальное корректное применение - другое
корректного или приемлемого применения - это все слова! Попытка пустить пыль в глаза. Есть код и он может работать или нет все точка. После того как он работает и выполняет задачу мы можем задаться вопросом: можно ли сделать это лучше, правильнее (опять правильнее для кого? для нас, для команды, подвести под общее среднее мнение и т.п), быстрее... и т.п. Вот тут для QThread мы имеем два варианта:
1. использовать его как ООП оболочку над потоками ОСи. мы берем и наследуемся и переопределяем run.
2. Мы все делаем через сигнал слот и т.п для этого в run должен быть запущен exec. А КОбжекты должны быть созданы внутри потока (внутри функции run) либо перемещены в этот поток, чтобы их слоты обрабатывались в этом потоке. внутри exec