Я не уверен, как это сработало; вы должны создать подкласс QThread и переопределить метод run (). Ошибка «не принимает аргументов» вызвана тем, что среда выполнения QT пытается передать «я» в качестве первого аргумента метода класса. Следующее ближе к тому, что вам нужно:
def myThread(QtCore.QThread):
def run(self):
pass
thread = myThread()
thread.start()
ОБНОВЛЕНО: немного больше соответствует оригиналу.
def myRun():
doStuff
thread = QtCore.QThread()
thread.run = lambda self: myRun()
thread.start()