1

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

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

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

QT有什么变化吗?我怎样才能在两台机器上完成这项工作?

谢谢!弥敦道

4

1 回答 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()
于 2010-07-14T19:49:12.650 回答