Попробовал объявить self.process в init, а в run только вызывать start()
__init__
вызывается в главном потоке, а run
уже в другом, потому и ошибка.
Но мне не очень нравится создание нового экземпляра QProcess на каждой итерации цикла.
Можно в начале run создавать. Если бы не было waitForFinished(), вообще, логичным бы смотрелось создание экземпляра на каждый из одновременно работающих процессов.
Но у меня как раз родитель и не указывается, т.е в init пишу так self.process = QProcess()
Warning: QObject: Cannot create children for a parent that is in a different thread.
(Parent is QProcess(0xbd22e98), parent's thread is QThread(0xa364f50), current thread is WorkThread(0xa4d7468)
Тут имеется ввиду, что QProcess пытается создать какие-то дочерние объекты (когда вызывается start и т.п.) но он находится в другом потоке, т.е. к родителю процесса это отношения не имеет.