python QThread.run参数 - 版本之间的变化?

时间:2010-07-14 19:43:28

标签: python pyqt4 qthread

在我的代码(python2.6,PyQt4)中,我做了类似的事情:

def myRun():
    doStuff
thread = QtCore.QThread()
thread.run = myRun
thread.start()

在我的gentoo机器上,这非常有效。在ubunut(9.10,Karmic Koala)它不起作用,它说: 类型错误:myRun()不带参数(给定1个)

QT有什么变化吗?如何在两台机器上完成这项工作?

谢谢! 森

1 个答案:

答案 0 :(得分:2)

我不确定这是怎么回事;你应该继承QThread并覆盖run()方法。 “不带参数”错误是因为QT运行时试图将“self”作为类方法的第一个参数传递。以下内容更接近您的需求:

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()