python QThread.run 参数 - 版本间有变化吗?
在我的代码中(python2.6,PyQt4),我做了这样的事情:
def myRun():
doStuff
thread = QtCore.QThread()
thread.run = myRun
thread.start()
在我的Gentoo系统上,这一切运行得很好。但是在Ubuntu(9.10,Karmic Koala)上就不行了,它提示:
类型错误:myRun()不接受参数(给了1个)
QT有什么变化吗?我该如何让它在两台机器上都能正常工作呢?
谢谢!
Nathan
1 个回答
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()